Примена типова изузетака у ЈаваСкрипту
Претпоставимо да имамо функцију која као параметар прима 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.