개발자 jin K

[Javascript] 예외 처리 throw 본문

자바스크립트

[Javascript] 예외 처리 throw

jin K 2021. 5. 24. 08:26

자바 스크립트에선 throw 를 통해 예외를 강제로 발생시킬 수 있다.

이때 자신이 정의한 예외를 던질 수 있는데 문자열로 던지고 문자열로 받는다.

 

무슨 이야기인지는 코드로 살펴보자.

 

코드 예제

// 예외 처리 발생시키는 throw 키워드.
// 여기서 throw의 예외 이름과 catch문 안에서 조건 비교할시 ''라는 문자열을 둘 다 넣어준 점을 확인.
function
 test() {

  try {
    console.log('A');
    throw 'myException';
  } catch(exception{
    console.log('B');
    if (exception == 'myException'{
      console.log('myException');
    }
    return;
  }
  console.log('C');
}


test();

 

결과는 콘솔에

 

'A',

'B'

'myException'이 차례로 찍힌다.

 

예를 들어 throw 'myException'이 아닌 throw myException 일 경우 console.log에 myExcetpion이 찍히지 않는다. 결과는 'A'와 'B'만 찍히고 실행이 끝난다.

 

또 catch 문 안의 if (exception == 'myException')이 아니라 if (exception == 'myException')이라고 할 경우에도 예외처리가 원하는 대로 콘솔에 myException이 찍히는 형태가 되지 않는다. Uncaught ReferenceError: myException is not defined 에러가 뜬다. myException이라는 변수가 정의되지 않았기 때문이다. 

 

마지막으로 throw와 catch문 안의 if의 myException을 둘다 따옴표 ''에 넣지않고 문자열이 아닌 것으로 주었을 경우에도  Uncaught ReferenceError: myException is not defined 에러가 뜬다. 이유는 두번째와 동일하다.

 

즉 정리하자면,

자바스크립트의 사용자 정의 예외 객체는 문자열 내용을 비교하는 것으로 발생시킨다는 것을 알 수 있다.

'자바스크립트' 카테고리의 다른 글

[Javascript] window.opener 와 window.parent의 차이  (0) 2021.05.27