[javascript] 전역 에러 핸들링 방법

JavaScript 애플리케이션 개발 중 에러 발생은 불가피합니다. 이 때, 애플리케이션 전역에서 에러를 핸들링하는 방법은 중요합니다. 이번 글에서는 JavaScript에서 전역 에러 핸들링을 위한 몇 가지 방법을 알아보겠습니다.

1. window.onerror 이벤트 리스너

window.onerror 이벤트 리스너는 최상위 윈도우 객체인 window에 등록하여 전역 에러를 감지할 수 있습니다. 아래 예제는 전역 에러가 발생했을 때 콘솔에 에러 메시지를 출력하는 방법을 보여줍니다.

window.onerror = function(message, url, line, col, error) {
  console.error('에러 메시지:', message);
  console.error('에러 위치:', url, '라인:', line, '컬럼:', col);
  console.error('에러 객체:', error);
}

위의 코드에서 message는 에러 메시지, url은 에러가 발생한 파일 경로, line은 에러가 발생한 줄 번호, col은 에러가 발생한 컬럼 번호, error는 에러 객체를 의미합니다.

2. try-catch 문 사용

try-catch 문을 사용하여 전역 코드 블록을 감싸면, 코드 실행 도중 에러가 발생했을 때 에러를 캐치할 수 있습니다. 아래 예제는 전역 코드 블록을 try 블록으로 감싼 후 에러가 발생하면 catch 블록에서 에러를 핸들링하는 방법입니다.

try {
  // 전역 코드 블록
} catch (error) {
  console.error('에러 발생:', error);
}

위의 코드에서 error는 에러 객체를 의미합니다.

3. unhandledrejection 이벤트 리스너

Promise 객체에서 발생한 rejected 상태의 에러는 unhandledrejection 이벤트를 통해 전역에서 핸들링할 수 있습니다. 아래 예제는 Promise에서 rejected 상태의 에러가 발생했을 때 에러 메시지를 출력하는 방법입니다.

window.addEventListener('unhandledrejection', function(event) {
  console.error('Promise 에러:', event.reason);
});

위의 코드에서 event.reason은 rejected 상태의 에러 객체를 의미합니다.

마무리

JavaScript 애플리케이션에서 전역 에러 핸들링은 애플리케이션의 안정성을 높이고 사용자 경험을 개선하는 데 도움이 됩니다. 이번 글에서는 window.onerror 이벤트 리스너, try-catch 문, unhandledrejection 이벤트 리스너를 통해 JavaScript에서 전역 에러 핸들링하는 방법을 살펴보았습니다.

참고 자료: