防止控制台关闭异常

时间:2015-04-30 13:04:51

标签: node.js visual-studio-code

我正在尝试使用Visual Studio Code(在Windows上)并且喜欢它。

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

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

1 个答案:

答案 0 :(得分:8)

如果您将事件处理程序附加到流程对象中以查看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);
}

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

当我添加代码" 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)

然后&#34;暂停&#34;永远,直到我杀死该程序。