⊗jsSpExcJSE 149 of 294 menu

Voorbeeld van uitzondering met JSON in JavaScript

Stel dat er van ergens uit de externe wereld een JSON met een product bij ons aankomt:

let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount);

Je weet al dat de methode JSON.parse een uitzondering zal throwen als de JSON ongeldig is. Laten we deze uitzondering vangen:

try { let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount); } catch (error) { // reageer op de een of andere manier op de uitzondering }

Het kan echter zijn dat de JSON zelf geldig is, maar niet de benodigde velden bevat, bijvoorbeeld ontbreekt het prijsveld:

let json = '{"product": "apple", "amount": 5}'; // geen prijs

Laten we zeggen dat dit ook een uitzonderlijke situatie is en in dat geval onze eigen gebruikersgedefinieerde uitzondering zullen throwen:

try { let json = '{"product": "apple", "amount": 5}'; let product = JSON.parse(json); if (product.price !== undefined && product.amount !== undefined) { alert(product.price * product.amount); } else { throw { name: 'ProductCostError', message: 'prijs of hoeveelheid van product ontbreekt' }; } } catch (error) { // reageer op de een of andere manier op de uitzondering }

Nu zal het catch-blok twee typen uitzonderingen ontvangen: ofwel is de JSON helemaal ongeldig, en dan is er een uitzondering van het type SyntaxError, ofwel is de JSON geldig, maar bevat niet de benodigde velden, en dan is er een uitzondering van het type ProductCostError.

Laten we in het catch-blok deze typen uitzonderingen afvangen:

try { let json = '{"product": "apple", "amount": 5}'; let product = JSON.parse(json); if (product.price !== undefined && product.amount !== undefined) { alert(product.price * product.amount); } else { throw { name: 'ProductCostError', message: 'prijs of hoeveelheid van product ontbreekt' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('Ongeldige product-JSON'); } else if (error.name == 'ProductCostError') { alert('Prijs of hoeveelheid van product ontbreekt'); } }

Stel dat er een JSON van het volgende type bij je aankomt:

let json = `[ { "name": "user1", "age": 25, "salary": 1000 }, { "name": "user2", "age": 26, "salary": 2000 }, { "name": "user3", "age": 27, "salary": 3000 } ]`;

Controleer deze JSON op algemene geldigheid bij het parsen, en controleer na het parsen of het resultaat een array is, en niet iets anders. Als het resultaat geen array is - throw dan een uitzondering.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren