正在处理可能引发多种类型错误的应用程序。对于每种不同类型的错误,节点进程必须以不同的退出代码终止。
目前,我抛出类似以下错误:
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)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句