Нравится сайт? Поддержи его донатом в 10-20$
С вашей поддержкой автор code.mu сможет вести дальнейшую работу над сайтом
⊗jsSpExcAT 144 of 294 menu
НОВИНКА Каждую среду будут выходить бесплатные онлайн лекции по HTML CSS, JavaScript, PHP, Python! Предлагайте темы:)

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

Русский
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить