Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 구문 오류(Syntax Error)를 감지하고 처리하는 방법

JavaScript에서는 try-catch 블록으로 구문 오류(Syntax Error)를 처리할 수 없습니다. 그 이유는 구문 오류가 코드가 실행되기 전, 즉 파싱(parsing) 단계에서 발생하기 때문입니다. try-catch는 실제 코드가 실행되는 런타임에 발생하는 예외만 잡을 수 있으므로, 파싱 시점에 발생하는 구문 오류에는 적용되지 않습니다.

window.onerror를 활용한 구문 오류 처리

구문 오류를 감지하려면 전역 오류 이벤트 핸들러인 window.onerror를 사용하는 것이 효과적입니다. 아래 코드와 같이 활용할 수 있습니다.

<html>
   <head>
      <script>
         window.onerror = function(e) {
            document.write('Error: ', e, '</br>')
         };
      </script>
      
      <script>
         document.write('x'x')
      </script>
   </head>
   
   <body>
   </body>
</html>

위 예제에서 두 번째 스크립트 블록의 document.write('x'x')는 따옴표가 잘못 사용되어 구문 오류를 유발합니다. 이때 첫 번째 스크립트 블록에 정의된 window.onerror 핸들러가 이 오류를 감지하여 화면에 에러 메시지를 출력합니다.

주의 사항

참고: 오류 처리 함수(window.onerror 핸들러)는 반드시 별도의 <script> 태그 안에 정의해야 합니다. 동일한 스크립트 블록 내에서 정의하면, 해당 블록의 구문 오류로 인해 핸들러 자체가 등록되기 전에 파싱이 중단될 수 있기 때문입니다.