$ exceptionHandler 구현을 재정의하는 방법
자바 스크립트 예외가 발생할 때마다 수행하고 싶은 추가 작업이 있습니다.
문서에서 $exceptionHandler
:
각도 표현식에서 포착되지 않은 예외는이 서비스에 위임됩니다. 기본 구현은 단순히 브라우저 콘솔에 로그인하는 $ log.error에 위임합니다.
"기본 구현"이라는 사실은 서비스에 대한 자체 구현을 제공 할 수있는 방법이 있다고 생각하게 만들고 예외가 발생했을 때 원하는 작업을 수행합니다. 제 질문은, 어떻게 이것을합니까? 이 서비스에 대한 모든 예외를 유지하면서 원하는 기능을 제공하려면 어떻게해야합니까?
내가 찾은 또 다른 옵션 $exceptionHandler
은 $ provide.decorator 함수를 통해 "장식"하는 것입니다. 이는 사용자 정의 구현의 일부로 사용하려는 경우 원래 구현에 대한 참조를 제공합니다. 따라서 다음과 같이 할 수 있습니다.
mod.config(function($provide) {
$provide.decorator("$exceptionHandler", ['$delegate', function($delegate) {
return function(exception, cause) {
$delegate(exception, cause);
alert(exception.message);
};
}]);
});
원래 예외 처리기가 수행하는 작업과 사용자 지정 기능을 수행합니다.
이 업데이트 된 바이올린을 참조하십시오 .
$exceptionHandler
동일한 이름으로 서비스를 생성 하여 기능을 재정의 할 수 있습니다 .
var mod = angular.module('testApp', []);
mod.factory('$exceptionHandler', function () {
return function (exception, cause) {
alert(exception.message);
};
});
샘플 은 이 바이올린 을 참조하십시오 . 공장 정의를 주석 처리하면 $exceptionHandler
경고하는 대신 콘솔에 오류가 기록되는 것을 볼 수 있습니다.
다음은 using 과 같은 다른 서비스를 주입하는 예제 가있는 그룹 스레드 입니다 .$http
$injector
참고 : 기존 기능 $exceptionHandler
(또는 다른 기본 제공 서비스) 을 덮어 쓰지 않으려면 이 답변 에서 서비스 장식 방법에 대한 정보를 참조하십시오 .
$ cookieStore도 모든 서비스 / 공장을 재정의 할 수 있습니다. 본격적인 구성 가능한 객체를 원한다면 여기 에 정말 좋은 예가 있습니다 .
var myApp = angular.module('myApp', []);
//provider style, full blown, configurable version
myApp.provider('helloWorld', function() {
this.name = 'Default';
this.$get = function() {
var name = this.name;
return {
sayHello: function() {
return "Hello, " + name + "!"
}
}
};
this.setName = function(name) {
this.name = name;
};
});
//hey, we can configure a provider!
myApp.config(function(helloWorldProvider){
helloWorldProvider.setName('World');
});
function MyCtrl($scope, helloWorld, helloWorldFromFactory, helloWorldFromService) {
helloWorld.sayHello(),
}
참고 URL : https://stackoverflow.com/questions/13595469/how-to-override-exceptionhandler-implementation
'development' 카테고리의 다른 글
Android에서 HTTP 인증을 수행하는 방법은 무엇입니까? (0) | 2020.10.25 |
---|---|
템플릿 파일 변경시 Flask 앱 다시로드 (0) | 2020.10.25 |
.NET에서 오류 및 경고 메시지 상자를 표시하는 방법 / MessageBox를 사용자 지정하는 방법 (0) | 2020.10.25 |
const가 C가 아닌데 C ++에서 내부 연결을 의미하는 이유는 무엇입니까? (0) | 2020.10.24 |
Java 오류 : 유형 만 가져올 수 있습니다. (0) | 2020.10.24 |