如何在 netsuite 中使用 suitescript 2.0 显示自定义错误消息而不使用堆栈跟踪

2024-05-03

我想使用“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(使用前将#替换为@)

如何在 netsuite 中使用 suitescript 2.0 显示自定义错误消息而不使用堆栈跟踪 的相关文章

随机推荐