尝试catch的javascript node.js获取行号?

我正在使用try catch一个node.js脚本:

try {} catch (err) {console.log(err)} 

我得到这样的输出:

 { stack: [Getter/Setter], arguments: [ 'undefined' ], type: 'called_non_callable', message: [Getter/Setter] } 

有没有一个简单的方法来使这个更多的信息? 包括行号和函数名称等?

那些[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()),尽pipe扩展Object.prototype承担覆盖现有function的风险。