2013-04-24 4 views
25

내 웹 사이트에 onerror 이벤트를 추가하려고합니다.window.onerror가 크롬에서 작동하지 않습니다.

window.onerror = function() { 
    alert("an error"); 
} 

하지만받는 모든이다 : 나는 무엇을 놓치고

notThere(); 
ReferenceError: notThere is not defined 

?

브라우저 : 크롬 26.0.1410.64 분

단계 재현 :

  • 콘솔에 코드를 추가합니다. 어떤 의미가 - 콘솔에서,하지만 분명히하지 -
  • 콘솔

답변

25

크롬의 window.onerror 작업 (http://jsfiddle.net/PWSDF/ jsfiddle 참조) notThere()를 추가합니다.

+20

그것은 어떤 의미가 있습니까? –

+3

콘솔에 표시하는 대신 오류를 납치하는 것 같습니다. – Lachezar

14

일부 다른 이유 :

그것은 예를 들어, setTimeout(function() { notThere(); }, 0);

가능한 중복,하지만 setTimeout를 통해 트리거 될 수 있습니다

  • 다른 라이브러리는 window.onerror을 설정합니다.
  • 각도를 사용하는 경우 오류는 window.onerror을 통과하지 않습니다. 이 공장을 사용하여 처리 할 수 ​​있습니다

    .factory('$exceptionHandler', function() { 
         return function errorCatcherHandler(exception, cause) { 
          console.error(exception); 
          if (window.OnClientError) window.OnClientError(exception); 
         }; 
        }) 
    

참조 :

https://docs.angularjs.org/api/ng/service/ $ exceptionHandler

http://bahmutov.calepin.co/catch-all-errors-in-angular-app.html

관련 문제