Dee*_*gan 4 javascript error-handling netsuite suitescript
我想使用“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":"请输入至少一个合同行项目以保存合同。"
我的代码:
throw error.create({
name: 'MISSING_CONTRACT_LINE',
message: 'Please enter atleast one Contract Line item to save a contract.'
});
Run Code Online (Sandbox Code Playgroud)
有什么可能的方法来实现这一目标吗?
提前致谢。
小智 5
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;
Run Code Online (Sandbox Code Playgroud)
或者,也可以只抛出一个字符串,但是,介入 catch 块将失去访问错误的其他属性的好处,例如,Error#stack 或 Error#name。
| 归档时间: |
|
| 查看次数: |
4132 次 |
| 最近记录: |