JavaScript에서 예외 던지기
이전 강의들에서 우리는 JavaScript가 문제가 발생했을 때 예외를 던지는 두 가지 경우를 공부했습니다.
그러나 여러분의 프로젝트에서는 여러분에게는 예외적이지만 JavaScript에게는 그렇지 않은 다른 상황들이 있을 수 있습니다. 이런 경우 우리는 사용자 정의 예외를 생성하고 던질 수 있습니다.
이를 위해 필요한 구문을 알아봅시다. 먼저,
new Error 명령을 사용하여 예외를 생성해야
하는데, 매개변수로 예외 메시지를 전달합니다:
new Error('예외 메시지');
그런 다음 throw 명령을 사용하여 이 예외를 던져야 합니다:
throw new Error('예외 메시지');
예외를 던지는 것은 JavaScript에게 예외적인 상황이
발생했다고 간주하도록 만듭니다.
이는 try-catch 구문을 사용하여
그러한 예외를 잡아서(catch) 필요한 방식으로 처리할 수 있다는 것을 의미합니다.
예제를 통해 이를 어떻게 사용하는지 살펴봅시다. 한 숫자를 다른 숫자로 나누는 함수가 있다고 가정해 봅시다:
function div(a, b) {
return a / b;
}
0으로 나누는 것은 허용되지 않으며, 이를 시도할 때 예외 상황이 발생해야 한다고 가정해 봅시다. 이를 위해 함수 내에서 0으로 나누려는 시도가 있는지 확인할 것입니다. 없다면 나누기를 수행하고, 있다면 예외를 던질 것입니다:
function div(a, b) {
if (b !== 0) {
return a / b;
} else {
throw new Error('0으로 나누기 오류');
}
}
먼저, 예외를 잡지(catch) 않고 0으로 나눠 보겠습니다:
alert( div(3, 0) );
이 경우 스크립트 실행이 중단되고
콘솔에 '0으로 나누기 오류'라는 메시지와 함께 오류가 나타납니다 (확인해 보세요). 이제 우리의 오류를 잡아서(catch) 어떻게든 처리해 보겠습니다:
try {
alert( div(3, 0) );
} catch (error) {
alert('0으로 나누려고 시도하고 있습니다. 이는 허용되지 않습니다.');
}
JavaScript에서 음수의 제곱근을 구하려는 시도는 예외를 던지지 않습니다:
let result = Math.sqrt(-1);
console.log(result); // NaN을 출력합니다
숫자의 제곱근을 구하는 자신만의 함수를 작성하세요. 이 함수는 음수에서 제곱근을 구하려고 할 때 예외를 던져야 합니다.