자바스크립트 예외 / 에러 처리 ㅣ 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 값이 짝수가 아닐 경우 아래와 같은 에러 문구가 뜬다.
'Javascript' 카테고리의 다른 글
[JavaScript 주요 배열 함수] some / every / find / findIndex (0) | 2023.11.24 |
---|---|
[자바스크립트] 1급 객체 first-class object (0) | 2023.11.24 |
[JavaScript 주요 배열 함수] sort / forEach / map / filter / reduce (0) | 2023.10.25 |