javascript - 如何从 NetSuite 中的 RESTlet 引发自定义错误?

标签 javascript error-handling netsuite

我正在尝试从 RESTlet 中抛出自定义错误,并尝试使其与 NetSuite 的错误格式类似。我希望客户端看到 HTTP 代码 400。当我使用脚本 v1 时,我只需这样做:

throw nlapiCreateError('MY_ERROR_CODE', 'My message');

在这种情况下我得到这样的答案(这是我的目标):

{
    "error":
    {
        "code": "MY_ERROR_CODE",
        "message": "My message"
    }
}

但是当我使用脚本 v2 时,我会这样做:

    throw error.create({
        name: 'MY_ERROR_CODE',
        message: 'My message'});

我明白了:

{
    "error":
    {
        "code": "JS_EXCEPTION",
        "message": "{"type":"error.SuiteScriptError","name":"MY_ERROR_CODE","message":"My message","stack":["createError(N/error)","prevalidations(SuiteScripts/RESTlet.js:152)","doPost(SuiteScripts/RESTlet.js:86)","createError(N/error)"],"cause":{"name":"MY_ERROR_CODE","message":"My message"},"id":""}"
    }
}

如果我使用 v2,谁能告诉我如何在使用 v1 时获得答案?

最佳答案

我没有足够的代表来回复答案。因此,作为 Prajakta 解决方案的后续,不是创建错误对象然后抛出它,而是引用消息字段。您可以按照以下方式同时创建和抛出:

 throw error.create({
   name: 'FAILURE',
   message: 'Error details here',
   notifyOff: false
}).message;

关于javascript - 如何从 NetSuite 中的 RESTlet 引发自定义错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38959171/

相关文章:

c# - 给出常见失败方法的失败原因

c# - Netsuite Suitetalk 服务引用在 ASP.NET 和 Visual Studio 中不起作用

netsuite - 获取子列表行数据

javascript - .PDF 中的自定义操作链接...编写 Javascript 来更改单击时链接的外观?

javascript - 可以在 jquery 中单击警报框按钮时编写页面刷新代码吗?

javascript - 如何在现代浏览器中单击 html <a> 标记或 javascript 时触发文件下载

javascript - 调用自定义对象时返回 undefined variable ,否则很好

php - 如何将json发送到php文件以保存在服务器上

php - 如何在Silex中捕获身份验证错误?

php - PHP错误处理-未定义偏移