JavaScript에서 사용자 정의 예외란?
JavaScript에서는 throw 문을 사용하여 직접 만든 예외(사용자 정의 예외)를 발생시킬 수 있습니다. 이렇게 던진 예외는 try...catch 블록으로 잡아내어 원하는 방식으로 처리할 수 있으며, 이를 통해 프로그램의 오류 상황을 보다 세밀하게 제어할 수 있습니다.
예제 코드
다음 예제는 0으로 나누려는 경우 "Divide by zero error."라는 사용자 정의 예외를 던지고, catch 블록에서 이를 받아 알림 창으로 표시하는 코드입니다.
<html>
<head>
<script>
function myFunc()
{
var a = 100;
var b = 0;
try {
if ( b == 0 ) {
throw( "Divide by zero error." );
} else {
var c = a / b;
}
}
catch ( e ) {
alert("Error: " + e );
}
}
</script>
</head>
<body>
<p>Click the following to see the result:</p>
<form>
<input type = "button" value = "Click Me" onclick = "myFunc();" />
</form>
</body>
</html>
코드 동작 방식
myFunc() 함수 내부에서 변수 a에는 100, 변수 b에는 0이 저장됩니다. 실행 흐름은 다음과 같습니다.
- b가 0인 경우: if 조건문이 참이 되어 throw 문이 실행되고, 문자열 형태의 사용자 정의 예외가 발생합니다.
- b가 0이 아닌 경우: else 블록에서 나눗셈 연산이 정상적으로 수행됩니다.
- 예외 발생 시: 던져진 예외는 catch 블록의 매개변수 e로 전달되며, alert()를 통해 "Error: Divide by zero error."라는 메시지가 화면에 표시됩니다.
정리
이처럼 throw 문과 try...catch 구문을 함께 활용하면, JavaScript에서도 개발자가 정의한 규칙에 맞는 예외 처리 로직을 손쉽게 구현할 수 있습니다. 특히 0으로 나누기처럼 런타임 중 발생할 수 있는 위험한 연산을 사전에 검사하고 안전하게 처리하는 데 유용합니다.