예외란?
개발을 하면서 '예외(Exception)'라는 단어를 자주 접하게 된다.
'예외'란 생성된 정상적인 동작에서 어긋나 예외 상황이나 에러가 발생하는 경우를 뜻한다.
JavaScript에서는 예외 발생을 처리하기 위해서 try/catch문을 사용해서 작성하게 된다.
try/catch/finally문
try문 안에는 예외가 발생할 지도 모르는 동작의 코드를 작성한다.
catch문 안에는 try문의 예외 발생 시 처리할 동작의 코드를 작성한다.
finally문 안에는 try문, catch문의 동작이 끝나면 실행될 코드를 작성한다.
catch문과 finally문은 생략해서 사용해도 되지만,
try문을 사용하는 의미가 없어지기 때문에 하나 이상의 블록과 같이 사용하는 것이 좋다.
아래는 try/catch/finally문을 사용해 작성된 코드이다.
try/catch/finally문 예시 코드
const sum = (x, y) => {
try {
return x + y;
} catch(err) {
console.error(err);
} finally {
console.log("테스트 코드 출력");
}
}
위의 코드는 x값과 y값을 입력 받아 더해주는 코드이다.
하지만 x, y값을 숫자가 아닌 문자를 넣어도 JavaScript에서는 정상적으로 동작하게 되고 예외가 발생하지 않게 된다.
따라서, 예외를 강제로 발생시켜야 되는 상황에는 'throw'를 사용하게 된다.
throw란?
throw란 '던지다'라는 뜻의 단어이다.
throw는 예외가 발생하지 않더라도 예외 상황이나 에러를 알려주는 역할을 한다.
위의 코드처럼 정상적인 결과 값을 기대할 수 없는 상황에서 throw를 사용할 수 있다.
throw문 예시 코드
const sum = (x, y) => {
try {
if(typeof x !== "number && typeof y !== "number) {
throw "매개변수의 값이 숫자가 아닙니다.";
}
return x + y;
} catch(err) {
console.error(err);
} finally {
console.log("테스트 코드 출력");
}
}
위의 코드처럼 문자열로 작성해도 상관없지만, 구체적인 정보를 얻기 위해선 Error 객체와 함께 사용해주는 것이 좋다.
const sum = (x, y) => {
try {
if(typeof x !== "number && typeof y !== "number) {
throw new Error("매개변수의 값이 숫자가 아닙니다.");
}
return x + y;
} catch(err) {
console.error(err);
} finally {
console.log("테스트 코드 출력");
}
}
참고 사이트
https://webclub.tistory.com/71
'🖥️Frontend > JavaScript' 카테고리의 다른 글
[JavaScript] overflow-x 적용 시 stacky 적용 안되는 현상 (2) | 2023.10.12 |
---|
댓글