如何在Node.js中打印堆栈跟踪?
有谁知道如何在Node.js中打印堆栈跟踪?
任何Error
对象都有一个stack
成员,用于捕获构建它的点。
var stack = new Error().stack
console.log( stack )
或者更简单:
console.trace("Here I am!")
现在在控制台上有一个专门的功能:
console.trace()
正如已经回答的那样,您可以简单地使用trace命令:
console.trace("I am here");
但是, 如果您遇到了这个问题,并且正在搜索如何记录异常的堆栈跟踪 ,则可以简单地记录Exception对象。
try {
// if something unexpected
throw new Error("Something unexpected has occurred.");
} catch (e) {
console.error(e);
}
它会记录:
错误:发生意外事件。
在主(c: Users Me Documents MyApp app.js:9:15)
在对象。 (C:用户我文件 MyApp的 app.js:17:1)
在Module._compile(module.js:460:26)
在Object.Module._extensions..js(module.js:478:10)
在Module.load(module.js:355:32)
在Function.Module._load(module.js:310:12)
在Function.Module.runMain(module.js:501:10)
在启动时(node.js:129:16)
在node.js:814:3
如果您的Node.js版本<6.0.0 ,那么记录Exception对象将不够。 在这种情况下,它只会打印:
[错误:发生了意外事件。]
对于Node版本<6,使用console.error(e.stack)
而不是console.error(e)
打印错误消息加上完整的堆栈,就像当前的Node版本一样。
注意:如果异常被创建为类似throw "myException"
的字符串,则无法检索堆栈跟踪,并且记录e.stack
产量未定义 。
为了安全起见,你可以使用
console.error(e.stack || e);
它将适用于新旧的Node.js版本。
链接地址: http://www.djcxy.com/p/14467.html