자바스크립트 예외와 에러 처리
2018-02-23
1. Error 객체
- 자바스크립트에는 내장된 Error 객체가 있고 이 객체는 에러 처리에 간편하게 사용할 수 있다.
- 에러메세지는 Error 객체의 message 프로퍼티에 있다.
const err = new Error('error msg');
- Error 예제
2. try/catch 예외처리
- 예상치 못한 에러에 대처하려면 try…catch 문으로 코드 전체를 감쌀 수 있다.
- 에러를 캐치했으므로 프로그램은 멈추지 않고, 에러를 기록하고 계속 진행할 수 있음
- try…catch 예제
3. throw
- 직접 에러를 일으켜서(throw) 예외 처리 작업을 시작할 수 있음
- throw를 호출하면 현재 함수는 즉시 실행을 멈춤.
- throw 예제
4. 예외 처리와 호출 스택
- 함수 c가 실행을 마칠 때 실행 흐름은 b로 돌아가고, 함수 b가 실행을 마칠 때 실행 흐름은 a로 돌아간다
- c가 실행 중 일때는 a와 b는 완료될 수 없다.
- 완료되지 않은 함수가 쌓이는 것을 호출 스택(call stack)이라고 한다.
- c에서 에러가 일어나면, b에서도 일어나고 따라서 a에서도 일어난다. 에러는 캐치될 때까지 호출 스택을 따라 올라간다.
function a(){ b(); } function b(){ c(); } function c(){ }
- Error 인스턴스에는 스택을 문자열로 표현한 stack 프로퍼티가 있다
- 예외 처리 예제
5. try…catch…finally
- try 블록의 코드가 HTTP 연결이나 파일 같은 일종의 ‘자원’을 처리해야 할 때가 있다.
- finally 블록은 에러가 일어나든, 일어나지 않든 반드시 호출된다.