Erandite tüüpide rakendamine JavaScriptis
Oletame, et meil on funktsioon, mis võtab parameetrina JSON-i andmemassiiviga ja kirjutab iga selle massiivi elemendi kohalikku salvestusseadnesse:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
Selles funktsioonis võib erandolukord tekkida kahes kohas: JSON-i sõelumisel ja andmete salvestamise katsel kohalikku salvestusseadnesse.
Oletame, et näiteks veatöötlusena otsustasime kuvada teatud teate probleemide kohta:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('mingid probleemid');
}
Meie teade on muidugi tore, kuid see ei erista tekkinud probleeme. Loogilisem oleks kuvada teade konkreetse probleemi kohta.
Selleks eristame tekkinud vigu nime järgi:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('salvestusruum on otsas');
}
if (error.name == 'SyntaxError') {
alert('vigane JSON');
}
}
Kopeerige minu funktsiooni saveData kood,
ja seejärel ilma minu koodi peale vahtimata rakendage
kirjeldatud veatöötlus.
Looge spetsiaalselt järjekorras erandolukordi,
mis võivad funktsioonis saveData tekkida.