자바스크립트 예외 처리: try, catch, finally 구문과 throw 사용법
자바스크립트에서 예외 처리는 try, catch, finally 구문을 사용하여 처리할 수 있습니다. 이 글에서는 try, catch, finally 블록의 기본 구조와 작동 원리 그리고 에러 객체의 사용 방법에 대해서 예제로 알아보겠습니다.
1. try, catch, finally 블록의 기본 구조와 작동 원리
▼ 구문
try {
// 실행할 코드
} catch (error) {
// 에러 발생 시 처리할 코드
} finally {
// 에러 발생 여부와 관계없이 항상 실행할 코드
}
- try : try 블록은 코드를 실행하면서 발생할 수 있는 에러를 감지하는 영역입니다. 에러가 발생하지 않으면, catch 블록은 무시되고 실행이 계속됩니다. 만약 try 블록에서 에러가 발생하면, 즉시 catch 블록으로 이동하여 예외 처리를 합니다.
- catch: catch 블록은 try 블록에서 에러가 발생했을 때 실행되는 영역입니다. 여기서 에러 객체를 인수로 받아 에러에 대한 정보를 얻고 처리할 수 있습니다.
- finally: finally 블록은 try와 catch 블록 실행 후 항상 실행되는 영역입니다. 에러 발생 여부와 관계없이 반드시 실행해야 하는 코드를 여기에 작성합니다.
2. 에러 객체 사용하기
catch 블록에서 에러 객체를 받아 처리하는 방법을 알아봅니다. 에러 객체에는 name과 message 속성이 있습니다.
1. 예제 코드
<!DOCTYPE html>
<html>
<head>
<title>Try, Catch, and Finally with Error Details</title>
</head>
<body>
<script>
function exampleFunction() {
try {
console.log('try 블록 시작');
// 강제로 에러 발생시키기
let a = undefinedVariable;
console.log('try 블록 끝');
} catch (error) {
// 에러 객체의 name과 message 속성을 출력
console.error('catch 블록: 에러 이름 -', error.name, ', 에러 메시지 -', error.message);
} finally {
console.log('finally 블록');
}
}
exampleFunction();
</script>
</body>
</html>
2. 실행 결과 화면

3. 예외를 발생시키는 방법 및 throw 문
자바스크립트에서는 throw 문을 사용하여 예외를 발생시킬 수 있습니다.
1. 예제 코드
<!DOCTYPE html>
<html>
<head>
<title>Try, Catch, and Finally with Throw</title>
</head>
<body>
<script>
function exampleFunction() {
try {
console.log('try 블록 시작');
// throw를 사용하여 강제로 에러 발생시키기
throw new Error('이것은 강제로 발생한 에러입니다.');
console.log('try 블록 끝');
} catch (error) {
// 에러 객체의 name과 message 속성을 출력
console.error('catch 블록: 에러 이름 -', error.name, ', 에러 메시지 -', error.message);
} finally {
console.log('finally 블록');
}
}
exampleFunction();
</script>
</body>
</html>
2. 실행 결과 화면

4. finally 블록의 역할
finally 블록은 에러 발생 여부와 관계없이 항상 실행되는 블록입니다. 예를 들어, 데이터베이스 연결을 닫거나 파일을 저장하는 등의 정리 작업이 필요한 경우에 finally 블록에서 이러한 작업을 수행할 수 있습니다.
1. 예제 코드
<!DOCTYPE html>
<html>
<head>
<title>Try, Catch, and Finally with Cleanup Operations</title>
</head>
<body>
<script>
function exampleFunction() {
try {
// 로직 처리
} catch (error) {
// 에러인 경우 처리
console.error('catch 블록: 에러 이름 -', error.name, ', 에러 메시지 -', error.message);
} finally {
// 에러와 상관없이 처리
// (예시)데이터베이스 연결 닫기
db.close();
// (예시)파일 저장하기
file.save();
console.log('finally 블록에서 정리 작업을 수행함');
}
}
exampleFunction();
</script>
</body>
</html>
관련 이전 게시글
- 자바스크립트 조건문: if, switch, 삼항 연산자 사용법과 예제 코드
- 자바스크립트 함수: 선언, 매개변수, 반환값, 스코프, 호이스팅
- 자바스크립트 변수와 상수: var, let, const 차이점과 사용법
- 자바스크립트 포커스 이벤트: focus, blur 처리하기
- 자바스크립트 폼 이벤트: submit, reset, input, change 처리하기
이 글이 도움이 되셨다면 공유를 부탁 드립니다. 다음 글에서 뵙겠습니다!