javascript - NodeJS抛出错误而不退出

标签 javascript node.js

我正在开发一个可以抛出多种类型错误的应用程序。对于每种不同类型的错误, Node 进程必须以不同的退出代码终止。

目前我抛出如下错误:

throw new Error1('失败,原因 1'); throw new Error2('失败,因为原因 2');

然而,这会导致进程在每次抛出退出代码 8 的错误时退出。

我需要的是一种优雅的方式来根据抛出的错误抛出特定的退出代码。 IE。当我抛出 Error1 时,它应该以代码 1 退出,而当我抛出 Error2 时,它应该以代码 2 退出。

目前它每次都以代码“8”退出。

我看过其他文章,有人建议使用 process.on('uncaughtException', ...); 会起作用;确实如此,但是它需要“捕获”错误,重新打印出来然后退出。

有什么建议吗?

非常感谢。

最佳答案

下面的代码可以让你做你想做的事:

Error8.prototype = Error.prototype
process.on('uncaughtException', handleErrors)
throw Error8("Bad news...")

function Error8(message) {
    this.name = "Error8"
    this.message = message || ''
    this.errorCode = 8
}
function handleErrors (e) {
    if (!e.errorCode) {
        console.log('Unknown exception occurred')
        process.exit(1)
    }

    console.log("ECODE-" + e.errorCode + ": " + e.message)
    process.exit(e.errorCode)
}

关于javascript - NodeJS抛出错误而不退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33656466/

相关文章:

mysql - Node.js 连接到 MySQL Docker 容器 ECONNREFUSED

Javascript 从输入中获取文本并将其复制到跨度

javascript - col-md-12 的 Bootstrap 问题

javascript - 如何在 AngularJs 中使用 ng-repeat 过滤(键,值)?

android - Phonegap - 设置 Phonegap

javascript - Node.js 中的继承函数如何工作?

javascript - 使用casperjs下载资源图片文件

php - AJAX+PHP投票系统

javascript - knockout if 语法

asynchronous - Javascript:同步到异步转换器库