防止异常关闭控制台

Prevent console closing on exception

我正在尝试 Visual Studio 代码(在 Windows 上)并且到目前为止我很喜欢它。

有没有办法防止 console/terminal 在调试节点应用程序时因未处理的异常而自动关闭?

我知道节点退出是正确的行为,我只是希望有机会在关闭控制台之前阅读输出 window。

如果您将事件处理程序附加到监视 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);
}

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

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

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)

它然后 "pauses" 直到我终止程序。

windows 的一个好的解决方案是制作一个 run-server.bat 使用代码编辑器打开文件并编写以下代码。 这是做什么的,运行 服务器,如果服务器退出,只需暂停控制台。

node server.js
PAUSE