我正在试用 Visual Studio Code(在 Windows 上)并喜欢它。
调试节点应用程序时,有没有办法防止控制台/终端在未处理的异常时自动关闭?
我知道节点退出是正确的行为,我只是希望有机会在关闭控制台窗口之前读取输出。
我正在试用 Visual Studio Code(在 Windows 上)并喜欢它。
调试节点应用程序时,有没有办法防止控制台/终端在未处理的异常时自动关闭?
我知道节点退出是正确的行为,我只是希望有机会在关闭控制台窗口之前读取输出。
如果将事件处理程序附加到监视 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)
然后它会永远“暂停”,直到我终止程序。
Windows 的一个好的和简洁的解决方案是制作一个 run-server.bat 使用代码编辑器打开文件并编写以下代码。这是做什么的,运行服务器,如果服务器退出,只需暂停控制台。
node server.js
PAUSE