NodeJS在未退出的情况下引发错误

NodeJS Throwing error without exiting

本文关键字:错误 情况下 退出 NodeJS      更新时间:2023-09-26

Am正在处理一个可能引发多种类型错误的应用程序。对于每种不同类型的错误,节点进程都必须使用不同的退出代码终止。

目前我正在抛出错误,如:

throw new Error1('Failed, because of reason 1'); throw new Error2('Failed, because of reason 2');

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

我需要的是一种优雅的方法,根据抛出的错误来抛出特定的退出代码。也就是说,当我抛出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)
}
相关文章: