예외 처리와 에러 핸들링 (try...catch)
예외 처리(Exception Handling)는 프로그램 실행 중에 발생하는 에러를 우아하게(Gracefully) 처리하여 프로그램이 갑자기 종료되는 것을 방지합니다.
try 블록 안에 위험한 코드를 넣고, 에러가 발생하면 자바스크립트 엔진이 제어권을 즉시 catch 블록으로 넘깁니다. finally 블록은 에러 발생 여부와 상관없이 무조건 마지막에 실행되어 리소스 정리 등에 유용합니다. 또한 throw 키워드로 개발자가 직접 커스텀 에러를 발생시킬 수도 있습니다.
<script>
console.log("=== 예외 처리 시작 ===");
function divideNumbers(a, b) {
try {
console.log(`나눗셈 시도: ${a} / ${b}`);
if (b === 0) {
// throw 키워드로 강제로 에러를 발생시킴
throw new Error("0으로 나눌 수 없습니다!");
}
console.log("결과:", a / b);
} catch (error) {
// try 블록 안에서 에러가 나면 즉시 이쪽으로 점프
console.error("🚨 에러 잡힘:", error.message);
} finally {
// 에러가 나든 안 나든 마지막에 무조건 실행됨 (로딩 스피너 제거, 파일 닫기 등에 사용)
console.log("-> 계산 로직 완료 (finally 블록)\n");
}
}
divideNumbers(10, 2); // 정상 작동
divideNumbers(10, 0); // 에러 발생하지만 catch가 잡아주어 프로그램이 죽지 않음
console.log("프로그램이 무사히 끝까지 실행되었습니다.");
</script>