자바스크립트에서 발생하는 상황의 종류
자바스크립트에서는 예외가 발생하는 상황이 매우 적습니다. 첫째로, 단순히 예외가 발생할 수 있는 곳이 매우 적기 때문입니다.
둘째로, 언어 자체가 "관대"하기 때문입니다: 0으로 나누거나 잘못된 HTML 코드 같은 많은 것들을 눈감아 줍니다. 심지어 로드하려는 이미지의 경로를 잘못 지정하더라도, 자바스크립트는 그것을 용서하고 예외로 간주하지 않습니다.
하지만, 예외 상황은 존재합니다. 우리는 가장 간단한 두 가지 예를 살펴보고, 그 예를 통해 자바스크립트에서 예외 처리 방법을 배우겠습니다.
첫 번째 예외는 잘못된 JSON을 구문 분석하려고 할 때 발생합니다:
let data = JSON.parse('{1,2,3,4,5}'); // 이 json은 올바르지 않음
두 번째 예외는 우리 사이트에 할당된 로컬 스토리지가 가득 찼을 때
(5 메가바이트 이상) 발생합니다.
이런 예외를 인위적으로 발생시켜 보겠습니다:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // 5MB 이상의 문자열 생성
str += '+';
}
localStorage.setItem('key', str); // 스토리지에 쓰기 시도
자바스크립트는 이러한 예외 상황에 어떻게 반응할까요? 단순히 콘솔에 오류를 던지고 스크립트의 추가 실행을 중단합니다.
프로그래머로서 우리의 임무는 이러한 상황을 포착하고
프로그램이 완전히 실행을 멈추지 않도록 어떻게든 처리하는 것입니다.
이를 위해 다음 수업에서 다룰 특별한 try-catch 구문이 존재합니다.
충분히 큰 크기의 문자열을 생성하고 로컬 스토리지에 기록하려고 시도해 보세요. 콘솔에 오류가 발생하는지 확인하세요.
잘못된 JSON을 구문 분석하려고 시도해 보세요. 콘솔에 오류가 발생하는지 확인하세요.