본 내용은 모던 자바스크립트 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 |