Izņēmumu tipu pielietojums JavaScript
Pieņemsim, ka mums ir funkcija, kas parametrā saņem JSON ar datu masīvu un ieraksta katru šī masīva elementu lokālajā krātuvē:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
Šajā funkcijā izņēmuma situācija var rasties divās vietās: parsējot JSON un mēģinot saglabāt datus lokālajā krātuvē.
Pieņemsim, ka, piemēram, kā kļūdu apstrādi mēs nolēmām izvadīt kādu ziņojumu par problēmām:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('kādas problēmas');
}
Mūsu ziņojums, tas, protams, ir labi, bet tas nekādā veidā nediferencē radušās problēmas. Loģiskāk būtu izvadīt ziņojumu par to, kāda tieši problēma radusies.
Lai to izdarītu, atšķirsim radušās kļūdas pēc to nosaukuma:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('beidzās vieta krātuvē');
}
if (error.name == 'SyntaxError') {
alert('nepareizs JSON');
}
}
Nokopējiet manas funkcijas saveData kodu,
un pēc tam, neieskatoties manā kodā, realizējiet
manis aprakstīto kļūdu apstrādi.
Speciāli pēc kārtas izveidojiet izņēmuma
situācijas, kas var rasties funkcijā
saveData.