我在 node.js 脚本上使用 try catch:
try {} catch (err) {console.log(err)}
我得到这样的输出:
{
stack: [Getter/Setter],
arguments: [ 'undefined' ],
type: 'called_non_callable',
message: [Getter/Setter]
}
有没有一种简单的方法可以使其提供更多信息?包括行号和函数名称等?
Those [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
承担覆盖现有功能的风险。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)