[모던 자바스크립트 Deep Dive] 47. 에러 처리
47. 에러 처리
47.1 에러 처리의 필요성
- 에러처리를 구현하는 방법은 두가지가 있다.
- querySelector나 Array#find 메서드처럼 예외적인 상황이 발생하면 반환하는 값(null, -1)을 if 문이나 단축 평가 또는 옵셔널 체이닝 연산자를 통해 확인해서 처리하는 방법과 에러 처리 코드를 미리 등록해 두고 에러가 발생하면 에러 처리 코드로 점프하도록 하는 방법이 있다
- try...catch...finally문은 일반적인 에러 처리라고 한다. 3개의 코드 블록으로 구성된다.
더보기
try {
// 실행된 코드 (에러가 발생할 가능성이 있는 코드)
} catch (err) {
// try 코드 블록에서 에러가 발생하면 이 코드 블록의 코드가 실행된다.
// err에는 try 코드 블록에서 발생한 Error 객체가 전달된다.
} finally {
// 에러 발생과 상관없이 반드시 한번 실행된다.
}
47.3 Error 객체
- Errror 생성자 함수는 에러 객체를 생성한다.
const error = new Error('invalid');
- 생성한 에러 객체는 message 프로퍼티와 stack 프로퍼티를 갖는다. message 프로퍼티의 값은 Error 생성자 함수에 인수로 전달한 여러 메세지이고, stack 프로퍼티의 값은 에러를 발생시킨 콜 스택의 호출 정보를 나타내는 문자열이며, 디버깅 목적으로 사용한다.
47.4 throw 문
- 에러 객체 생성과 에러 발생은 의미가 다르다.
더보기
throw 표현식;
- 어떤값이라도 상관없지만 일반적으로 에러객체를 지정한다. 에러를 던지면 catch 문에 에러 변수가 생성되고 던져진 에러 객체가 할당된다 그리고 catch 코드 블록이 실행되기 시작한다.
try {
throw new Error('something wrong');
} catch (error) {
console.log(error)
}
47.5 에러의 전파
- 에러는 호출자 방향으로 전파된다.
블로그의 정보
개발 블로그👩💻
Blairj