Anvendelse av unntakstyper i JavaScript
La oss si at vi har en funksjon som tar imot JSON med en datamatrise som parameter og skriver hvert element i denne matrisen til lokal lagring:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
I denne funksjonen kan unntakssituasjoner oppstå på to steder: under analyse av JSON og ved forsøk på å lagre data i den lokale lagringen.
La oss si at for feilhåndtering bestemte vi oss for å vise en melding om problemene:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('noen problemer');
}
Meldingen vår er selvfølgelig bra, men den differensierer ikke mellom de oppståtte problemene. Det ville vært mer logisk å vise en melding om hvilket spesifikt problem som oppstod.
For å gjøre dette, kan vi skille mellom feilene som oppstår ved navn:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('plass i lagringen er oppbrukt');
}
if (error.name == 'SyntaxError') {
alert('ugyldig JSON');
}
}
Kopier koden til min funksjon saveData,
og deretter, uten å se på koden min, implementer
feilhåndteringen jeg har beskrevet.
Skap spesifikt etter tur unntakssituasjoner
som kan oppstå i funksjonen
saveData.