最初,我的代码中使用uncaughtException
来捕获所有未处理的异常。
process.on('uncaughtException', function (err) {
if ('stack' in err) {
console.log(err.stack);
}
});
然而,这不是一个好方法,根据这个post,我们知道
`uncaughtException` is a very crude mechanism for exception handling and
may be removed in the future.
And use `domains` instead. If you do use it, restart your application
after every unhandled exception!
Do not use it as the node.js equivalent of On Error Resume Next.
模块forever
也是另一种好方法。
以下是我的问题:
On Error Resume Next
是什么意思?答案 0 :(得分:1)
On Error Resume Next
是一个Visual Basic(和VB.NET!)结构,它会导致任何到达其作用域的异常被忽略并继续执行。 (这是一个坏主意,要清楚。)看起来像这样:
Sub Example()
On Error Resume Next
Dim x As String = Nothing
Dim y As String = x.Substring(0, 5) ' Fails! Ignored! y is Nothing, probably
Console.WriteLine(y) ' Execution continues
End Sub
有点像在PHP中使用@
启动每个语句,作为另一个例子。
forever
是重启脚本的正确方法,该脚本在发生未处理的异常时不应终止。
答案 1 :(得分:1)
引自this