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

자바스크립트 예외 처리 방법: try...catch...finally 완벽 가이드

자바스크립트에서 예외(exception)를 처리하려면 try...catch...finally 구문을 사용합니다. 자바스크립트는 try...catch...finally 문과 throw 연산자를 통해 예외 처리 기능을 제공합니다.

try...catch 블록으로 프로그래머가 직접 발생시킨 예외와 런타임(runtime) 예외를 모두 잡을 수 있지만, 자바스크립트의 문법 오류(syntax error)는 catch 블록으로 잡을 수 없다는 점에 유의해야 합니다.

각 블록의 역할

  • try 블록: 오류가 발생할 가능성이 있는 코드를 감싸는 영역입니다.
  • catch 블록: try 블록에서 오류가 발생했을 때 실행되며, 에러 객체(e)를 통해 오류 정보를 확인할 수 있습니다.
  • finally 블록: 오류 발생 여부와 관계없이 항상 마지막에 실행됩니다. 리소스 해제 등 정리 작업에 유용합니다.

예제 코드

아래 코드를 실행하면서 자바스크립트에서 예외를 잡는 방법을 직접 확인해 볼 수 있습니다.

<html>
   <head>
      <script>
         <!--
            function myFunc() {
               var a = 100;
               try {
                  alert("변수 a의 값 : " + a );
               }
               catch ( e ) {
                  alert("오류: " + e.description );
               }
               finally {
                  alert("finally 블록은 항상 실행됩니다!" );
               }
            }
         //-->
      </script>
   </head>

   <body>
      <p>다음 버튼을 클릭하면 결과를 확인할 수 있습니다:</p>

      <form>
         <input type = "button" value = "클릭하세요" onclick = "myFunc();" />
      </form>
   </body>
</html>

정리

위 예제에서는 변수 a에 값이 정상적으로 할당되어 있으므로 try 블록의 alert가 먼저 실행되고, 이후 finally 블록의 메시지가 표시됩니다. 만약 try 블록 안에서 오류가 발생한다면 catch 블록이 실행되어 오류 내용을 화면에 보여주고, 그 다음에 finally 블록이 실행됩니다.

추가로, throw 문을 사용하면 개발자가 의도적으로 오류를 발생시켜 catch 블록에서 처리하도록 할 수 있습니다. 이를 활용하면 유효성 검사 실패 등 특정 조건에서 명확한 오류 메시지를 전달하는 견고한 코드를 작성할 수 있습니다.