簡體   English   中英

沒有退出的NodeJS投擲錯誤

[英]NodeJS Throwing error without exiting

正在處理可能引發多種類型錯誤的應用程序。 對於每種不同類型的錯誤,節點進程必須以不同的退出代碼終止。

此刻,我拋出如下錯誤:

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)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM