我在node.js脚本上使用try catch:
try {} catch (err) {console.log(err)}
我得到了如下输出:
{ stack: [Getter/Setter], arguments: [ 'undefined' ], type: 'called_non_callable', message: [Getter/Setter] }
有没有简单的方法让这篇文章信息更丰富?包括行号和函数名之类的?
eeq64g8w1#
这些[Getter/Setter]成员表示error对象上可用的进一步信息。您可以使用一个小的helper函数轻松地转储这些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会承担覆盖现有功能的风险。
Object.prototype
1条答案
按热度按时间eeq64g8w1#
这些
[Getter/Setter]
成员表示error对象上可用的进一步信息。您可以使用一个小的helper函数轻松地转储这些getter/setter的内容(非常琐碎的实现,进一步的细化取决于您)您还可以扩展
Object.prototype
以提高可访问性(这样您就可以使用err.dumpError()),尽管扩展Object.prototype
会承担覆盖现有功能的风险。