⊗jsSpExcAT 144 of 294 menu

Kivételtípusok alkalmazása JavaScriptben

Tegyük fel, hogy van egy függvényünk, amely paraméterként egy JSON-t fogad el egy adattömbbel, és ennek a tömbnek minden elemet a lokális tárolóba ír:

function saveData(json) { let arr = JSON.parse(json); for (let i = 0; i < arr.length; i++) { localStorage.setItem(i, arr[i]); } }

Ebben a függvényben kivételes helyzet két helyen fordulhat elő: a JSON elemzése során, és az adatok lokális tárolóba mentésének megkísérlésekor.

Tegyük fel például, hogy a hibakezelésként elhatároztuk, hogy megjelenítünk egy üzenetet a problémákról:

try { saveData('{1,2,3,4,5}'); } catch (error) { alert('valamilyen problémák'); }

Az üzenetünk persze jó, de egyáltalán nem különbözteti meg az előforduló problémákat. Logikusabb lenne kiírni egy üzenetet arról, hogy pontosan milyen probléma merült fel.

Ehhez különböztessük meg a keletkezett hibákat a neve alapján:

try { saveData('{1,2,3,4,5}'); } catch (error) { if (error.name == 'QuotaExceededError') { alert('elfogyott a hely a tárolóban'); } if (error.name == 'SyntaxError') { alert('érvénytelen JSON'); } }

Másolja le a saveData függvényem kódját, majd anélkül, hogy belenézne a kódomba, valósítsa meg általam leírt hibakezelést.

Hozzon létre szándékosan, egymás után olyan kivételes helyzeteket, amelyek a saveData függvényben előfordulhatnak.

itplhyuzcid