如果发生异常,是否可以确定调用过滤器的位置?
我有一个在多个页面中使用的过滤器,如果输入参数未定义,则会导致异常。 stacktrace指向我的过滤器功能,这使得很难从它产生的确切的html文件/页面进行调试。
angular.module('myModule', [])
.filter('myFilter', function() {
return function(val) {
// this fails if val is undefined
return val.something;
}
});
我的动机:
我正在使用一个记录到服务器后端的客户端记录器,因此检索此信息将非常有用。
答案 0 :(得分:0)
您可以通过修饰异常处理程序来实现此目的。
angular.module('myModule').config([
'$provide', function($provide) {
$provide.decorator("$exceptionHandler", ['$delegate', function($delegate) {
return function(exception, cause) {
$delegate(exception, cause);
console.log(exception.toString());
console.log(exception.fileName);
console.log(exception.lineNumber);
};
}]);
}]);