자바스크립트 예외 처리: try, catch, finally 구문과 throw 사용법

자바스크립트 예외 처리: try, catch, finally 구문과 throw 사용법

자바스크립트에서 예외 처리는 try, catch, finally 구문을 사용하여 처리할 수 있습니다. 이 글에서는 try, catch, finally 블록의 기본 구조와 작동 원리 그리고 에러 객체의 사용 방법에 대해서 예제로 알아보겠습니다.

1. try, catch, finally 블록의 기본 구조와 작동 원리

▼ 구문

try {
      // 실행할 코드
    } catch (error) {
      // 에러 발생 시 처리할 코드
    } finally {
      // 에러 발생 여부와 관계없이 항상 실행할 코드
    }
  1. try : try 블록은 코드를 실행하면서 발생할 수 있는 에러를 감지하는 영역입니다. 에러가 발생하지 않으면, catch 블록은 무시되고 실행이 계속됩니다. 만약 try 블록에서 에러가 발생하면, 즉시 catch 블록으로 이동하여 예외 처리를 합니다.
  2. catch: catch 블록은 try 블록에서 에러가 발생했을 때 실행되는 영역입니다. 여기서 에러 객체를 인수로 받아 에러에 대한 정보를 얻고 처리할 수 있습니다.
  3. finally: finally 블록은 try와 catch 블록 실행 후 항상 실행되는 영역입니다. 에러 발생 여부와 관계없이 반드시 실행해야 하는 코드를 여기에 작성합니다.

2. 에러 객체 사용하기

catch 블록에서 에러 객체를 받아 처리하는 방법을 알아봅니다. 에러 객체에는 name과 message 속성이 있습니다.


1. 예제 코드

<!DOCTYPE html>
<html>
<head>
     <title>Try, Catch, and Finally with Error Details</title>
</head>
<body>
     <script>
     function exampleFunction() {
     try {
          console.log('try 블록 시작');

          // 강제로 에러 발생시키기
          let a = undefinedVariable;

          console.log('try 블록 끝');
     } catch (error) {
          // 에러 객체의 name과 message 속성을 출력
          console.error('catch 블록: 에러 이름 -', error.name, ', 에러 메시지 -', error.message);
     } finally {
          console.log('finally 블록');
     }
     }

     exampleFunction();
     </script>
</body>
</html>


2. 실행 결과 화면

에러 객체 사용 예제 코드 실행 결과 화면입니다.

3. 예외를 발생시키는 방법 및 throw 문

자바스크립트에서는 throw 문을 사용하여 예외를 발생시킬 수 있습니다.


1. 예제 코드

<!DOCTYPE html>
<html>
<head>
     <title>Try, Catch, and Finally with Throw</title>
</head>
<body>
     <script>
     function exampleFunction() {
     try {
          console.log('try 블록 시작');

          // throw를 사용하여 강제로 에러 발생시키기
          throw new Error('이것은 강제로 발생한 에러입니다.');

          console.log('try 블록 끝');
     } catch (error) {
          // 에러 객체의 name과 message 속성을 출력
          console.error('catch 블록: 에러 이름 -', error.name, ', 에러 메시지 -', error.message);
     } finally {
          console.log('finally 블록');
     }
     }

     exampleFunction();
     </script>
</body>
</html>


2. 실행 결과 화면

예외를 발생시키는 throw 문 예제 실행 결과 화면입니다.

4. finally 블록의 역할

finally 블록은 에러 발생 여부와 관계없이 항상 실행되는 블록입니다. 예를 들어, 데이터베이스 연결을 닫거나 파일을 저장하는 등의 정리 작업이 필요한 경우에 finally 블록에서 이러한 작업을 수행할 수 있습니다.


1. 예제 코드

<!DOCTYPE html>
<html>
<head>
     <title>Try, Catch, and Finally with Cleanup Operations</title>
</head>
<body>
     <script>
     function exampleFunction() {
     try {
          // 로직 처리

     } catch (error) {
          // 에러인 경우 처리
          console.error('catch 블록: 에러 이름 -', error.name, ', 에러 메시지 -', error.message);
     } finally {
          // 에러와 상관없이 처리

          // (예시)데이터베이스 연결 닫기
          db.close();

          // (예시)파일 저장하기
          file.save();

          console.log('finally 블록에서 정리 작업을 수행함');
     }
     }

     exampleFunction();
     </script>
</body>
</html>


이 글이 도움이 되셨다면 공유를 부탁 드립니다. 다음 글에서 뵙겠습니다!

위로 스크롤