NodeJS在未退出的情况下引发错误
NodeJS Throwing error without exiting
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)
}
相关文章:
- 如何解决这种情况下的非法调用类型错误
- 如何在不创建格式错误的HTML标记的情况下分解字符串
- 未捕获错误:在未加载模板编译器的情况下,无法调用“compile”.请在调用“compile”之前加载“ember te
- 在没有F12工具的情况下恢复Internet Explorer上的javascript日志和错误
- 按钮(禁用=错误)条件;在某些情况下有效,而在其他情况下无效
- ObjectId数组将不会在没有错误的情况下填充
- 如何在不获得引用错误的情况下将不存在的JavaScript对象与未定义的对象进行比较
- 为什么在没有 var 关键字的情况下分配给变量时会出现引用错误
- 如何在不出现异步错误的情况下加载 Gist 代码
- AngularJS - 处理错误错误:[ng:areq] 在此特殊情况下 (?)
- 我们如何在错误的资源请求的情况下使用 XMLHttpRequest 函数处理程序
- 在某些情况下没有“访问控制-允许源”标头错误,但在其他情况下则没有
- 在我的情况下,未定义的 AngularJS 不是函数错误
- JavaScript 在没有全局变量初始化值的情况下得到错误
- 得到"SCRIPT70:许可被拒绝”;仅在EDGE浏览器/JJAVASCRIPT错误的情况下
- 在以下情况下,当错误来自 PHP 作为对 ajax 请求的响应时,如何显示警报
- Facebook在没有代码的情况下抛出错误
- 即使在正确调用函数的情况下,对象也需要在javascript中出现错误
- 在这种情况下,乘法和除法不会解决浮点错误
- 为什么"对象未定义”;在这种情况下没有抛出错误