본문 바로가기
Javascript

[예외 처리] try-catch-finally 문 / throw 문

by 검소한달걀 2023. 10. 22.

자바스크립트 예외 / 에러 처리 ㅣ try-catch-finally 문 / throw 문

 

우리는 언제나 예외적인 상황이 발생할 수 있다는 것을 전제하고 이에 대응하는 코드를 작성해야 한다.

[모던 자바스크립트 Deep Dive]

 

 

코테 준비 하는 중에 그동안 에러 처리문을 생각없이 막 써온 거 같아서 한번 제대로 정리하고자 함

 

꼭 에러가 아니더라도 예외적인 상황이 발생할 수 있는데,

이럴 때 보통 사용하는 방법에는 if문 같은 것을 통해 처리하는 방법과 미리 에러 처리 코드를 등록하는 방법이 있다.

후자의 경우가 try-catch-finally 문이다.

 

try-catch-finally

 

try {
   // 실행할 코드 (에러 가능성 있는 코드)
} catch (err) {
   // try에서 에러가 발생하면 이 코드 실행
   // err에는 try에서 발생한 Error 객체가 전달됨
} finally {
   // 에러와 상관없이 반드시 실행 (생략 가능)
}

 

이렇게 에러를 처리하면 프로그램이 강제 종료되지 않는다. 

 

여기에서 사용자가 에러/예외를 지정해 catch 코드 블록이 실행되게 하는 것이 throw 문이다.

 

throw

 

try {
   // 에러 객체를 던지면 catch 실행
   throw new Error('something wrong');
} catch (err) {
   console.log(err);
}

 

예를 들어

 

function even(x) {
  if (x % 2 !== 0) {
    throw new Error("짝수가 아닙니다.");
  }
}

try {
  even(3);
  console.log("짝수입니다.");
} catch (e) {
  console.log(e);
}

 

이렇게 작성한다면, x 값이 짝수가 아닐 경우 아래와 같은 에러 문구가 뜬다.