angularjs之如何使用 $exceptionHandler 获取异常的所有详细信息,包括 errorMsg、url 和 lineNumber
52php
阅读:15
2024-11-01 17:39:52
评论:0
我想在我的 angularJS 应用程序中设置 JS 异常日志记录模块,为此我使用了 $exceptionHandler。
我正在使用以下代码记录应用程序错误:
app.config(function($provide) {
$provide.decorator("$exceptionHandler", function($delegate) {
return function(exception, cause) {
$delegate(exception, cause);
// alert(exception.message);
console.log(JSON.stringify(exception.message += ' (caused by "' + cause + '")'));
};
});
});
但在这里,我只收到消息,但我想要与异常相关的所有详细信息,如错误消息、url、行号等。
如何使用上面的代码获取所有这些详细信息?
请您参考如下方法:
事实证明,error object 的唯一部分这是标准化的信息。 lineNumber 和 fileName 都会在不同的浏览器版本中给出不一致的结果。
尽可能多地获取有关异常的详细信息的最通用方法可能是这样的:
app.config(function($provide) {
$provide.decorator("$exceptionHandler", function($delegate) {
return function(exception, cause) {
$delegate(exception, cause);
var formatted = '';
var properties = '';
formatted += 'Exception: "' + exception.toString() + '"\n';
formatted += 'Caused by: ' + cause + '\n';
properties += (exception.message) ? 'Message: ' + exception.message + '\n' : ''
properties += (exception.fileName) ? 'File Name: ' + exception.fileName + '\n' : ''
properties += (exception.lineNumber) ? 'Line Number: ' + exception.lineNumber + '\n' : ''
properties += (exception.stack) ? 'Stack Trace: ' + exception.stack + '\n' : ''
if (properties) {
formatted += properties;
}
console.log(formatted);
};
});
});
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。