⊗jsSpExcAT 144 of 294 menu

Anvendelse af undtagelsestyper i JavaScript

Lad os sige, at vi har en funktion, der modtager JSON med en række data som parameter og skriver hvert element i denne række 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 funktion kan undtagelsessituationer opstå på to steder: under parsing af JSON og ved forsøg på at gemme data i den lokale lagring.

Lad os sige, at vi som fejlhåndtering besluttede at vise en besked om problemerne:

try { saveData('{1,2,3,4,5}'); } catch (error) { alert('nogle problemer'); }

Vores besked er selvfølgelig god, men den differentierer ikke mellem de opståede problemer. Det ville være mere logisk at vise en besked om, hvilket specifikt problem der opstod.

For at gøre dette skal vi skelne de opståede fejl ved deres navn:

try { saveData('{1,2,3,4,5}'); } catch (error) { if (error.name == 'QuotaExceededError') { alert('pladsen i lagringen er opbrugt'); } if (error.name == 'SyntaxError') { alert('ugyldig JSON'); } }

Kopier koden for min funktion saveData, og implementer derefter uden at kigge på min kode den fejlhåndtering, jeg har beskrevet.

Opret med vilje én efter én undtagelsessituationer, som kan opstå i funktionen saveData.

mscsidtruzl