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

← →
↑
en ru