예외 처리란?
예외는 프로그램 실행 중에 발생하는 런타임 오류를 의미한다. 이러한 예외가 발생했을 때 프로세스는 더 이상 동작하지 않기 때문에 try
/ catch
/ finally
를 사용한 예외처리를 통해 프로세스가 동작할 수 있게 해주어야 한다.
try
/ catch
/ finally
try {
예외를 처리하길 원하는 실행 코드;
} catch (ex) {
예외가 발생할 경우에 실행될 코드;
} finally {
try 블록이 종료되면 무조건 실행될 코드;
}
try
블록 - 기본적으로 가장 먼저 실행되고, 에러 발생이 예상되는 코드를 작성한다. (기본)catch
블록 - try 블록에서 발생한 예외 코드나 Error 객체를 인수로 전달받아 처리한다. (옵션)finally
블록 - 예외처리와 관계없이 무조건 실행된다. (옵션)
throw
throw 표현식;
throw
- 예외를 발생시키는 키워드이다. 표현식에는 예외 코드를 나타내는 숫자(Number)나 오류 메시지를 담고 있는 문자열(String), Error 객체(Object) 등이 올 수 있다.
Error
객체
- 런타임 오류가 발생할 때마다 오류 정보를 제공한다.
error.name
- 오류의 타입을 설정하거나 반환한다.error.message
- 오류 메시지를 설정하거나 반환한다.
예외 처리 예제
console.log('프로세스 시작');
try {
aleeddrt('경고창 실행'); // alert 철자 오류
console.log('경고창 실행 확인'); // 오류 발생으로 실행되지 않음
} catch (err) {
console.log('catch 영역');
console.log(err.message); // aleeddrt is not defined
console.log(err.name); // ReferenceError
// try catch 중첩
try {
if(err.message.toString().length > 0) // true
throw 'throw error';
} catch(err2) {
console.log('err2:', err2); // err2: throw error
} finally {
console.log('err2', 'finally');
}
} finally {
console.log('finally 영역 무조건 실행됨');
}
console.log('프로세스 종료');
- alert 철자 오류로 직접 오류를 발생시킨 후
catch
영역 안 쪽에서 다른try
영역 실행시킨다. - 바깥쪽
err.message
의length
가 0보다 클 경우, 즉 에러가 발생했을 경우throw
를 이용하여 예외 상황을 알린다. - err2 파라미터에
throw
가 담긴 것을 알 수 있다. finally
영역은 무조건 실행된다.- 예외 처리를 통해 프로세스가 멈추지 않고 종료되었다.
※ 참고자료
'🌎 Web > JavaScript' 카테고리의 다른 글
[JavaScript] 자바스크립트의 클래스(Class) (0) | 2022.04.22 |
---|---|
[JavaScript] 자바스크립트의 새로운 자료구조 Set, Map (0) | 2022.04.17 |
[JavaScript] 자바스크립트의 배열(Array) (0) | 2022.04.11 |
[JavaScript] 자바스크립트의 반복문(while문, for문) (0) | 2022.04.11 |
[JavaScript] 자바스크립트의 조건문(if문, switch문) (0) | 2022.04.11 |