Виды возникающих ситуаций в JavaScript
В JavaScript очень мало ситуаций, в которых возникают исключения. Во-первых, просто потому, что очень мало мест для их возникновения.
Во-вторых, потому, что сам язык "всепрощающий": он на многое смотрит сквозь пальцы, например, на деление на ноль или на некорректный HTML код. Даже если вы укажете неверный путь к картинке, которую собираетесь загрузить, JavaScript вам простит и это и не посчитает исключением.
Однако, исключительные ситуации есть. Мы разберем две самые простые и на их примере изучим работу с исключениями в JavaScript.
Первое исключение возникает, когда мы хотим разобрать некорректный JSON:
let data = JSON.parse('{1,2,3,4,5}'); // данный json некорректен
А второе исключение возникает, когда локальное
хранилище, выделенное под наш сайт переполняется
(больше 5
мегабайт). Давайте искусственно
вызовем такое исключение:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // формируем строку более 5 мб
str += '+';
}
localStorage.setItem('key', str); // пытаемся записать в хранилище
Как JavaScript реагирует на такие исключительные ситуации? Он просто вываливает ошибку в консоль и прекращает дальнейшее выполнение скрипта.
Наша задача, как программистов, состоит в
том, чтобы отловить такую ситуацию и как-то
справится с ней, не давая программе совсем
прекратить свое выполнение. Для этого
существуют специальные конструкция try-catch
,
которую мы разберем в следующих уроках.
Создайте строку достаточно большего размера и попытайтесь записать ее в локальное хранилище. Убедитесь в том, что в консоли будет ошибка.
Попытайтесь распарсить некорректный JSON. Убедитесь в том, что в консоли будет ошибка.