본문 바로가기

programming study/JavaScript

47장. 에러 처리

본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다.

47.1 에러 처리의 필요성

  • 에러를 방치하면 프로그램은 강제로 종료 됨
  • try ... catch 문을 사용해 에러에 대응
    • 에러가 발생해도 프로그램이 강제 종료되지 않음
  • 예외적인 상황
    • 에러를 발생하지는 않지만 에러를 야기시키는 상황
    • 단축 평가 또는 옵셔널 체이닝을 사용하여 에러의 원인 방지

47.2 try, catch, finally 문

  • 먼저 try 코드 블록이 실행
  • try 블록에서 에러가 발생하면, 발생한 에러는 catch 문의 에러 변수에 전달되어 catch문 실행
  • finally 블록은 에러 발생과 상관 없이 반
try {
 asyncFunc();
} catch(error) {
 console.error(error)
} finally {
 console.log('공통 로직')
}

47.3 Error 객체

  • Error 생성자 함수는 에러 객체 생성
  • 에러를 설명하는 에러 메시지를 인수로 전달 가능
  • 자바스크립트는 7가지의 에러 객체 생성자 함수 제공

47.4 throw 문

  • 에러 객체를 생성하는 것이 에러 발생은 아님
    • throw 문을 사용하여 에러 객체를 지정하고 던져야 함
try {
 throw new Error('에러');
} catch(error) {
 console.log(error);
}

47.5 에러의 전파

  • 에러는 호출자 방향으로 전파
    • 콜 스택의 아래 방향
  • throw된 에러를 캐치하지 않으면 호출자 방향으로 계속 전파됨
  • 대응하지 않으면, 프로그램이 강제 종료됨
  • 비동기 함수의 경우, 콜백 함수의 호출자가 없어서 에러를 전파할 호출자가 존재하지 않음

'programming study > JavaScript' 카테고리의 다른 글

조건부 렌더링  (0) 2022.06.02
48장. 모듈  (0) 2022.05.29
46장. 제너레이터와 async/await  (0) 2022.05.26
45장. 프로미스(2)  (0) 2022.05.25
Vue.js - 브라우저 저장소를 이용한 인증 값 관리  (0) 2022.05.24