# Виды возникающих ситуаций в 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. Убедитесь в том, что в консоли будет ошибка.

← →
↑
en ru