[Javascript] throw 예외처리

은비·2023년 6월 29일
0

JS_Study

목록 보기
1/18
post-thumbnail

📚 오늘은 내가 함수에 대해 공부를 하다가 throw를 알게되어서 정리할 겸 작성해본다.

throw는 개발자가 특정 상황에서 에러를 발생시키고 싶을때 개발자가 직접 예외를 발생시킬 수 있다. 직접 에러를 발생시켜야 할 경우에 throw를 사용한다.


언제 throw를 사용할까?

const add = (x, y) => x + y; // "홍길동"

console.log(add("홍"+"길동"));

내가 만들어본 add 함수이다.
난 x와 y에 숫자만 넣어서 두개를 더한 값을 return해주는 함수를 만들고싶다.
하지만 자바스크립트는 x와 y에 number가 들어오지않고
string이 들어와도 에러를 발생시키지않는다.
이때, 내가 직접 에러를 만들어 주고 싶을 경우 throw를 사용해주면 된다.


const add = (x, y) => {
  if(typeof x !== "number" || typeof y !== "number") {
    throw "숫자를 입력해주세요."
  }
  return x+y;
}
console.log(add("홍"+"길동"));

if문을 통해서 typeof로 "number"가 아니면 "숫자를 입력해주세요." 라는
에러를 발생시키도록 작성해준 코드이다. 실행을 하게되면 아래 화면처럼 에러가 표시된다.


throw 뒤에 바로 에러 멘트를 작성해주어도 괜찮지만 Error 생성자
사용하여 작성해주는 방식을 많이 선택한다고 한다.
어느 시점에서 에러가 발생했는지 같이 출력을 해주기 때문에
Error 생성자를 사용한다고 한다. 아래 코드를 확인해보자.

const add = (x, y) => {
  if (typeof x !== "number" || typeof y !== "number") {
    throw new Error("숫자를 입력해주세요.");
  }
  return x + y;
};
console.log(add("홍" + "길동"));

Error 생성자를 사용해주면 해당 실행컨텍스트 스택 정보가 같이
출력되기 때문에 어디에서 에러가 발생하는지 나온다.

✍ 결론 : Error 생성자와 throw 구문을 사용해서 개발자가 직접 에러를 발생시킬 수 있다.

0개의 댓글

관련 채용 정보