Window: reportError() method
Window
인터페이스의 reportError()
메서드는 탐지되지 않은 JavaScript의 예외를 시뮬레이션하여 콘솔이나 전역 스코프의 이벤트 핸들러에 에러를 보고하는 데에 사용될 수 있습니다.
이 특성은 사용자 설정 이벤트 디스패치나 콜백을 조작하는 라이브러리를 위해 설계되었습니다. 라이브러리들은 이 기능을 사용하여 콜백 코드의 오류를 캐치하고 최상위 핸들러에 다시 전달할 수 있습니다. 이를 통해 하나의 콜백의 예외가 다른 콜백들의 처리를 저해하지 않으면서도, 동시에 최상위 레벨에서 디버깅을 위한 스택 트레이스 정보를 쉽게 확인할 수 있도록 보장합니다.
구문
js
reportError(throwable)
매개변수
반환 값
없음 (undefined
).
예외
TypeError
-
이 메서드는 오류 인자 없이 호출됩니다.
예제
다음과 같이 메서드에 대한 기능 테스트를 수행합니다.
js
if (typeof window.reportError === "function") {
// function is defined
}
아래 코드에서는 오류를 생성하고 전달하는 과정을 확인할 수 있습니다. 그리고 onerror
이벤트 핸들러 속성을 사용하거나 error
이벤트에 대한 리스너를 추가하여 이를 탐지하는 방법을 보여줍니다.
onerror
에 할당된 핸들러는 추가적인 이벤트 전파를 막기 위해 true
를 반환해야 한다는 것을 주의하세요.
js
const newError = new Error("Some error message", "someFile.js", 11);
window.reportError(newError);
window.onerror = (message, source, lineno, colno, error) => {
console.error(`message: ${error.message}, lineno: ${lineno}`);
return true;
};
window.addEventListener("error", (error) => {
console.error(error.filename);
});
// Output
// > "message:Some error message, lineno: 11"
// > "someFile.js"
명세서
Specification |
---|
HTML # runtime-script-errors |
브라우저 호환성
같이 보기
Window
WorkerGlobalScope.reportError()
Window
:error
이벤트WorkerGlobalScope
:error
이벤트HTMLElement
:error
이벤트