🎶 자바스크립트에서 사용되는 예외처리 방법에 대해 알아보자.
1. 예외 처리의 필요성
에러가 발생하지 않는 코드를 작성하는 것은 불가능한데, 이러한 에러에 대해 대처하지 않고 방치하면 프로그램은 강제 종료되기 마련이다.
console.log('test'); // test
func(); // 오류 발생 -> 밑의 코드 실행 x
console.log('end_test');
이에 try - catch 문을 사용해 발생한 에러에 적절하게 대응해주면 프로그램이 강제로 종료되지 않고 계속해서 코드를 실행시킬 수 있다.
console.log('test'); // test
try{
func();
} catch(error){
console.log(error); // ReferenceError
}
console.log('end_test'); // end_test
2. try ... catch ... finally 문
일반적으로 error handling 이라고 부르는 이 방법은, 에러 처리 코드를 미리 등록해 두고 에러가 발생하면 에러 처리 코드로 점프하도록 하는 방법이다.
try 코드 블록에 포함된 문 중에서 에러가 발생하면 error 변수(변수 이름 상관x)가 생성되고, catch 코드 블록 내에서만 유효하게 사용된다. finally 코드 블록은 에러 발생 유무와 상관없이 반드시 한 번 실행된다.
console.log('test'); // test
try{
func();
}catch(err){
console.log(err); // ReferenceError
}finally{
console.log('finally test'); // finally test
}
console.log('end_test'); // end_test
3. Error 객체
Error 생성자 함수를 통해 에러 객체를 직접 생성할 수도 있다.
const err = new Error('에러!');
Error 생성자 함수가 생성한 에러 객체는 message 프로퍼티와 stack 프로퍼티를 갖는데, stack 프로퍼티의 값은 에러를 발생시킨 콜스택의 호출 정보를 나타내는 문자열이며 디버깅 목적으로 사용한다.
물론 Error 생성자 함수로 에러 객체를 생성한다고 에러가 발생하는 것은 아닌데, 다음과 같이 throw 문으로 에러 객체를 던져야 에러가 발생하는 것이다.
try{
throw new Error("error_test");
} catch(err){
console.log(err); // Error: error_test
}
'자바스크립트' 카테고리의 다른 글
[JS] 제너레이터 - 제너레이터 함수, 제너레이터 객체, 일시 중지와 재개 (0) | 2025.03.27 |
---|---|
[JS] 프로미스 - 콜백 패턴의 단점과 프로미스 생성 및 후속 처리 메서드 (0) | 2025.03.21 |
[JS] REST API - REST API 구성 요소와 설계 원칙 (0) | 2025.03.17 |
[JS] Ajax - Ajax 기초 개념, JSON, XMLHttpRequest (0) | 2025.03.09 |
[JS] 비동기 프로그래밍 - 동기 처리와 비동기 처리, 이벤트 루프와 테스크 큐 (2) | 2025.03.03 |
[JS] 타이머 - 호출 스케줄링, 타이머 함수, 디바운스와 스로틀 (0) | 2025.02.25 |
[JS] 이벤트 - 이벤트 핸들러 제거 방법과 이벤트 객체 (0) | 2025.02.19 |
[JS] 어트리뷰트 - HTML 어트리뷰트와 DOM 프로퍼티 (0) | 2025.02.17 |