gpt4 book ai didi

angularjs - 如何使用 $exceptionHandler 获取异常的所有详细信息,包括 errorMsg、url 和 lineNumber?

转载 作者:行者123 更新时间:2023-12-01 11:38:09 24 4
gpt4 key购买 nike

我想在我的 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);
};
});
});

关于angularjs - 如何使用 $exceptionHandler 获取异常的所有详细信息,包括 errorMsg、url 和 lineNumber?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25285306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com