Javascript 从$window.localstorage处理异常日志记录
我从John Papa的演示中获取了一些代码 问题代码如下:Javascript 从$window.localstorage处理异常日志记录,javascript,angularjs,Javascript,Angularjs,我从John Papa的演示中获取了一些代码 问题代码如下: function extendExceptionHandler($delegate, exceptionHandler, logger) { return function (exception, cause) { var appErrorPrefix = exceptionHandler.config.appErrorPrefix || ''; var errorData = { except
function extendExceptionHandler($delegate, exceptionHandler, logger) {
return function (exception, cause) {
var appErrorPrefix = exceptionHandler.config.appErrorPrefix || '';
var errorData = { exception: exception, cause: cause };
//problem occurs when setting exception.message
exception.message = appErrorPrefix + exception.message;
$delegate(exception, cause);
logger.error(exception.message, errorData);
};
}
当我在调试器中设置断点时,我可以看到exception.message
具有该值
未能在“存储”上设置“authorizationData”属性:设置“authorizationData”的值超出了配额。“
但是,行exception.message=appErrorPrefix+exception.message;
会导致第二个异常:
无法设置只有getter的[object]的属性消息
第二条消息设置正确,记录器现在可以工作了。那么,为什么我不能在引发第一个异常时设置异常.message
属性?(通过调用$window.localStorage[key]=JSON.stringify(value);
)引发到异常处理程序的异常.message似乎是“只读”的“。我没有任何文档支持这一点(可能是每个浏览器都有不同的功能之一),但一个简单的测试是对记录的消息使用局部变量。因为您只需要记录和授权,所以这可能就是您所需要的