11.2 try/catch와 예외 처리

1) try/catch

  • 예외처리는 try...catch 문을 사용

  • try : 뭔가를 시도

  • catch : 예외가 있으면 그것을 캐치

  const email = null;

  function validateEmail(email) {
    return email.match(/@/) ? email : new Error(`invalid email: ${email}`);
  }

  try {
    const validatedEmail = validateEmail(email);
    if (validatedEmail instanceof Error) { // Error 인스턴스가 반환됐는지 확인
      console.error(`Error: ${validatedEmail.message}`);
    } else {
      console.log(`Valid email: ${validatedEmail}`);
    }
  } catch (e) {
    console.log(`Error: ${e.message}`);
  }

2) 사용하는 이유

[예제] 11.1 에 있는 예제에서 email이 다른 값인 경우 결과

Uncaught TypeError: Cannot read property 'match' of null

=> 위와 같은 예상치 못한 에러가 일어날 가능성을 막고자 try/catch 문으로 예외를 처리함

3) 실행 순서

  • 에러를 캐치 -> 에러를 기록하고 계속 진행함

  • How to? 실행 흐름은 에러가 일어나는 즉시 catch 블록으로 이동 (에러가 일어나지 않으면 catch 블록은 실행되지 않음

Last updated