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

JavaScript에서 try...catch...finally 문으로 예외 처리하는 방법

최신 버전의 JavaScript에는 예외 처리(Exception Handling) 기능이 추가되었습니다. JavaScript는 try...catch...finally 구문과 throw 연산자를 통해 예외를 처리할 수 있습니다.

이 구문을 사용하면 프로그래머가 직접 발생시킨 예외와 런타임(runtime) 오류는 잡아낼(catch) 수 있지만, JavaScript의 문법 오류(syntax error)는 catch할 수 없다는 점에 유의해야 합니다.

try...catch...finally 기본 문법

try...catch...finally 블록의 기본적인 문법 구조는 다음과 같습니다.

<script>
   <!--
      try {
         // 실행할 코드
         [break;]
      }
      catch ( e ) {
         // 예외가 발생했을 때 실행할 코드
         [break;]
      }
      [ finally {
         // 예외 발생 여부와 관계없이
         // 항상 실행되는 코드
      }]
   //-->
</script>

각 블록의 역할

try 블록: 오류가 발생할 가능성이 있는 코드를 작성합니다. 이 블록 안에서 예외가 발생하면 즉시 catch 블록으로 제어가 넘어갑니다.

catch 블록: try 블록에서 예외가 발생한 경우에만 실행됩니다. 매개변수 e에는 발생한 오류에 대한 정보가 담긴 Error 객체가 전달됩니다.

finally 블록: 선택 사항이며, 예외 발생 여부와 상관없이 항상 실행됩니다. 주로 리소스 정리나 마무리 작업에 활용됩니다.

예제 코드

다음 코드를 실행하면 JavaScript에서 try...catch...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>

위 예제에서는 try 블록 내의 코드가 정상적으로 실행되므로 변수 a의 값이 alert 창으로 표시되고, 이후 finally 블록의 메시지가 출력됩니다. 만약 try 블록에서 오류가 발생했다면 catch 블록이 실행된 뒤 finally 블록이 실행되는 구조입니다.