본문 바로가기
자바스크립트

[JS] 예외처리 - 예외처리의 필요성과 try-catch-finally 문, 그리고 Error 객체의 생성

by 프로그래밍하겠습니다 2025. 3. 31.
728x90
반응형

🎶 자바스크립트에서 사용되는 예외처리 방법에 대해 알아보자.

 

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
}
728x90
반응형