我在一个node.js脚本中使用try catch:
try {} catch (err) {console.log(err)}
我得到了这样的输出:
{
stack: [Getter/Setter],
arguments: [ 'undefined' ],
type: 'called_non_callable',
message: [Getter/Setter]
}
有没有简单的方法使这更具信息性?包括行号、函数名等?
我在一个node.js脚本中使用try catch:
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()),不过扩展Object.prototype
存在覆盖现有功能的风险。