我想使用“suitescript 2.0”版本向用户显示没有堆栈跟踪的自定义错误消息。在工作流程中,自定义错误消息在没有堆栈跟踪的情况下显示,但在套件脚本中,“错误消息”与堆栈跟踪一起显示。
堆栈跟踪错误:{"type":"error.SuiteScriptError","name":"MISSING_CONTRACT_LINE","message":"请输入至少一个合同行项目以保存合同。","stack":["createError(N/error) ","beforeSubmit(SuiteScripts/Ex_UE_Contract_2.0.js:117)","createError(N/error)"],"cause":{"name":"MISSING_CONTRACT_LINE","message":"请输入至少一份合同用于保存合同的订单项。"},"id":""}
我想显示没有堆栈跟踪的自定义错误消息,如下所示:
"name":"MISSING_CONTRACT_LINE","message":"请输入至少一个合同行项目以保存合同。"
my Code:
throw error.create({
name: 'MISSING_CONTRACT_LINE',
message: 'Please enter atleast one Contract Line item to save a contract.'
});
有什么可能的方法来实现这一目标吗?
提前致谢。
N/error 的 SuiteScriptError#toString() 方法的默认实现是调用 JSON.stringify(this),但是,该方法可以覆盖每个实例,以处理通过抛出错误向用户显示原始错误消息的情况脱离剧本。例如:
var err = error.create({name: 'NO_JSON', message: 'This should not be displayed as JSON!'})
err.toString = function(){return err.message};
throw err;
或者,也可以仅抛出一个 String,但是,介入的 catch 块将失去访问 Error 的其他属性(例如 Error#stack 或 Error#name)的好处。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)