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

JavaScript 예외 처리 완벽 이해하기: try...catch...finally 활용법

JavaScript는 try...catch...finally 구문을 사용하여 예외(에러)를 처리합니다. 최신 버전의 JavaScript에는 강력한 예외 처리 기능이 추가되었으며, try...catch...finally 블록과 throw 연산자를 함께 사용해 다양한 오류 상황에 대응할 수 있습니다.

프로그래머가 직접 생성한 예외나 런타임(runtime) 오류는 catch로 잡아낼 수 있지만, JavaScript 문법 오류(syntax error)는 예외 처리로 잡을 수 없다는 점을 기억하세요.

기본 문법

try...catch...finally 블록의 기본 문법은 다음과 같습니다.

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

각 블록의 역할

  • try 블록: 오류가 발생할 가능성이 있는 코드를 작성하는 영역입니다.
  • catch 블록: try 블록에서 예외가 발생하면 실행됩니다. 발생한 에러 객체(e)를 통해 오류 정보를 확인할 수 있습니다.
  • finally 블록(선택 사항): 예외가 발생하든 아니든 항상 실행되므로, 리소스 정리 등 마무리 작업에 유용합니다.

실제 예제

아래 코드를 실행하면 JavaScript에서 예외 처리가 어떻게 동작하는지 확인할 수 있습니다.

<html>
   <head>
      <script>
         <!--
            function myFunc()
            {
               var x = 20;
               try {
                  alert("변수 a의 값 : " + a );
               }
               catch ( e ) {
                  alert("에러: " + e.description );
               }
            }
         //-->
      </script>
   </head>

   <body>
      <p>아래 버튼을 클릭하면 결과를 확인할 수 있습니다:</p>
      <form>
         <input type = "button" value = "클릭" onclick = "myFunc();" />
      </form>
   </body>
</html>

예제 설명

위 예제에서는 선언되지 않은 변수 a를 참조하기 때문에 try 블록 안에서 ReferenceError가 발생합니다. 하지만 예외 처리 덕분에 프로그램이 강제로 종료되지 않고, catch 블록이 실행되어 사용자에게 친절한 에러 메시지를 보여줄 수 있습니다.

참고로 현대 브라우저 환경에서는 e.description 대신 표준 속성인 e.message를 사용하는 것이 권장됩니다.