JS Deep Dive | 2022.01.08
47. 에러 처리
정리
에러처리의 필요성
- 에러 처리가 되지 않은 상태로 에러가 발생한다면 프로그램이 강제 종료된다.
- 에러 처리로 적절히 대응한다면, 계속 코드를 실행시킬 수 있다.
- 예외 사항에 따른 대응을 하여 원익파악을 쉽게 할 수 있다.
에러 처리 방법
- 예외사항에서 발생하는 반환값(
null
, -1
) 을 감지하여 처리
- 에러 발생 시 에러 처리 코드로 점프하도록 함
try
: 실행되는 코드 블록.
- 에러 발생 시
catch
문의 error
변수로 전달 후 try문 종료
catch
: 에러 발생시 에러를 error
변수로 받아 처리하는 코드 블록.
finally
: 에러 무관하게 최후에 한번 실행되는 코드 블록.
Error 객체들
const err = new Error("err");
- new 연산자로 생성한다.
- 프로퍼티
- message: 생성한 에러의 메세지
- stack: 발생시킨 콜스택의 호출 정보 문자열
객체의 종류
Error
: 일반적인 에러
SyntaxError
: 문법에 맞지않는 문 해석 시 발생하는 에러
ReferenceError
: 참조 불가능한 식별자 참조시 발생하는 에러
TypeError
: 데이터 타입이 유효하지 않을 때 발생하는 에러
RangeError
: 숫자값이 허용범위를 벗어났을 때 발생하는 에러
URIError
: encode, decodeURI에 잘못된 인자 전달 시 발생하는 에러
EvalError
: eval 함수에서 발생하는 에러
throw 문
- try 코드 블록에서 throw문을 이용해 catch문으로 에러를 던질 수 있다.
에러의 전파
- 에러는 호출자 방향으로 전파되므로 하위함수에서 발생한 에러를 상위함수에서 캐치할 수 있다.
- 아무도 캐치하지 못하면 프로그램 강제종료된다.
느낀점
- 책을 고르기 전, 이부분에 관한 목차를 봤는데 중요한 내용임에도 아무런 지식이 없다는 걸 깨달아 이 책을 구매하게 되었다. 내용이 많진 않지만 중요한 부분이니 꼭 알아두어야 할 것 같다.