javascript node.js在try catch中获取行号?
Posted
技术标签:
【中文标题】javascript node.js在try catch中获取行号?【英文标题】:javascript node.js getting line number in try catch? 【发布时间】:2011-08-13 18:08:12 【问题描述】:我在 node.js 脚本上使用 try catch:
try catch (err) console.log(err)
我得到这样的输出:
stack: [Getter/Setter],
arguments: [ 'undefined' ],
type: 'called_non_callable',
message: [Getter/Setter]
有没有一种简单的方法可以使信息更丰富?包括行号和函数名等?
【问题讨论】:
【参考方案1】:那些[Getter/Setter]
成员表示有关错误对象的更多信息。您可以使用一个小的帮助函数轻松转储这些 getter/setter 的内容(非常简单的实现,进一步细化取决于您)
function dumpError(err)
if (typeof err === 'object')
if (err.message)
console.log('\nMessage: ' + err.message)
if (err.stack)
console.log('\nStacktrace:')
console.log('====================')
console.log(err.stack);
else
console.log('dumpError :: argument is not an object');
try
not_defined.function_call();
catch(err)
dumpError(err);
您还可以扩展 Object.prototype
以提高可访问性(因此您可以使用 err.dumpError()),尽管扩展 Object.prototype
存在覆盖现有功能的风险。
【讨论】:
现实生活的改变者,ty 如何获得更深层次的err.stack?以上是关于javascript node.js在try catch中获取行号?的主要内容,如果未能解决你的问题,请参考以下文章
在 Node JS 中为 WebSocket (ws) 使用自签名 CA 证书
使用 node.js 验证带有 CA 证书的 X509 证书
Node.JS - 无法使用try / catch块获得异步抛出