window.onerror를 Chrome의 Developer console로 발화하는 방법
6981 단어 ChromeerrorhandlingDeveloperTool
window.onerror
window.onerror 는, 처리를 설정해 두는 것으로 UI 처리 전체의
Uncaught Error (catch されなかった error)
를 catch 할 수가 있습니다. Global(브라우저의 window 전체)의 Error handling입니다.window.onerror = function(errorMessage, filePath, rowNumber, columnNumber, errorObject) {
alert(errorMessage);
};
Chrome의 Developer console에서 사용해보기
Chrome의 Developer console을 열고 다음과 같이 window.error를 정의하고 Error를 throw 해보십시오.
window.onerror = function() {
alert('Error has occurred!');
}
throw new Error('Boom!');
> Uncaught Error: Boom!
at <anonymous>:1:7
alert dialog가 나오지 않았습니다 ...
이것은 동기 처리에 관해서는 Global 가 아니라 Developer console 내에서 에러 처리를 완결하려고 하고 있기 때문인 것 같습니다.
반대로 말하면, window.onerror 를 발화시키기 위해서는 비동기 처리로 에러를 일으키면 된다고 말하는 것.
setTimeout을 사용하여 비동기화
setTimeout 은 ms (1/1000 초)이므로, 1초 후에 Error 를 throw 해 봅니다.
window.onerror = function() {
alert('Error has occurred!');
}
setTimeout(function() { throw new Error('Boom!') }, 1000);
.....
나왔다!
생각하면 Node.js에서도 다음과 같이 동기화 처리라면 물론 throw 한 Error를 catch 해줍니다.
// err_test.js
try {
throw new Error('Error has occurred!');
} catch(e) {
console.log(e);
}
$ node err_test.js
> Error: Error has occurred!
비동기 처리하면 node의 Context(환경)를 뚫고 Shell이 status code 1을 반환했습니다.
// err_test.js
try {
setTimeout(function() { throw new Error('Error has occurred!'); }, 1000);
} catch(e) {
console.log(e);
}
$ node err_test.js
err_test.js:3
setTimeout(function() { throw new Error('Error has occurred!'); }, 1000);
^
shell returned 1
하나의 컨텍스트를 벗어나 그것을 포함하는 더 넓은 컨텍스트 영향을 얻으려면 비동기 처리가 하나의 키 포인트가 될 것 같습니다.
※ Node.js 의 건에 관해서는 이 기사가 매우 공부가 되었습니다.
htps : // / chbぉg. 야호오. 이. jp / p 로그 라민 g / 그럼 sc 리 pt_ 에로 r /
덤
비동기 처리로 Context 를 일탈하지 않아도, 브라우저의 주소 바에 이하와 같이 직접 입력해, Grobal 의 Error handling 을 발화시킨다고 하는 거친 기법도 있는 것 같습니다.
javascript: throw New Error('Error has occurred!');
Reference
이 문제에 관하여(window.onerror를 Chrome의 Developer console로 발화하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/att55/items/4486f8cadb339d9b03f1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)