防止控制台关闭异常

Sim*_*mon 6 node.js visual-studio-code

我正在尝试Visual Studio Code(在Windows上)并且喜欢它到目前为止.

有没有办法防止控制台/终端在调试节点应用程序时自动关闭未处理的异常?

我知道节点退出是正确的行为,我只是想在关闭控制台窗口之前读取输出.

Bri*_*ian 9

如果将事件处理程序附加到进程对象中以查看uncaughtException,则在未处理的异常情况下将立即调用该代码:

process.on('uncaughtException', UncaughtExceptionHandler);

function UncaughtExceptionHandler(err)
{
    console.log("Uncaught Exception Encountered!!");
    console.log("err: ", err);
    console.log("Stack trace: ", err.stack);
    setInterval(function(){}, 1000);
}
Run Code Online (Sandbox Code Playgroud)

这将输出错误,堆栈跟踪,然后永远等待你手动杀死你正在调试的程序.这对调试很有帮助,但显然不是最终产品中你想要的东西.

当我添加代码"console.log(undefined.undefined);" 在上面的process.on语句之后,我得到了结果输出:

Uncaught Exception Encountered!
err:  [TypeError: Cannot read property 'undefined' of undefined]
Stack trace:  TypeError: Cannot read property 'undefined' of undefined
    at Object.<anonymous> (/home/username/Desktop/test.js:3:22)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)
Run Code Online (Sandbox Code Playgroud)

然后它会"暂停"直到我杀死程序.