我正在尝试使用Visual Studio Code(在Windows上)并且喜欢它。
在调试节点应用程序时,有没有办法阻止控制台/终端自动关闭未处理的异常?
我知道节点退出是正确的行为,我只是想在关闭控制台窗口之前读取输出。
答案 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;永远,直到我杀死该程序。