АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗jsSpExcAT 144 of 294 menu
Долгожданный Бесплатный курс по выкладке сайта на хостинг. МЫ УЖЕ НАЧАЛИ! Присоединяйтесь к нам!

Применение типов исключений в 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.

enru