JavaScript에서 예외 타입 사용하기
데이터 배열이 있는 JSON을 매개변수로 받아 해당 배열의 각 요소를 로컬 저장소에 저장하는 함수가 있다고 가정해 보겠습니다:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
이 함수에서 예외 상황은 두 곳에서 발생할 수 있습니다: JSON을 구문 분석할 때와 로컬 저장소에 데이터를 저장하려고 할 때입니다.
예를 들어, 오류 처리를 위해 일부 문제 메시지를 표시하기로 결정했다고 가정해 보겠습니다:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('일부 문제가 발생했습니다');
}
우리의 메시지는 좋지만, 발생한 문제를 전혀 구분하지 않습니다. 어떤 문제가 발생했는지에 대한 메시지를 표시하는 것이 더 논리적일 것입니다.
이를 위해 발생한 오류를 이름으로 구분해 보겠습니다:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('저장 공간이 부족합니다');
}
if (error.name == 'SyntaxError') {
alert('잘못된 JSON 형식입니다');
}
}
제 함수 saveData의 코드를 복사한 다음,
제 코드를 보지 않고 제가 설명한 오류 처리를
구현하세요.
의도적으로 함수 saveData에서 발생할 수 있는
예외 상황을 순서대로 만들어 보세요.