⊗jsSpExcJSE 149 of 294 menu

Voorbeeld van uitsondering met JSON in JavaScript

Laat ons sê 'n JSON met 'n produk kom van êrens in die buitewêreld af na ons toe:

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

Jy weet reeds dat die metode JSON.parse 'n uitsondering sal gooi as die JSON ongeldig is. Kom ons vang hierdie uitsondering:

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

Daar kan egter wees dat die JSON self geldig is, maar nie die nodige velde bevat nie, byvoorbeeld, daar is geen prysveld nie:

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

Kom ons sê dat dit ook 'n uitsonderlike situasie is en sal in so 'n geval ons eie gebruikersuitsondering gooi:

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: 'prys of hoeveelheid van produk ontbreek' }; } } catch (error) { // reageer op een of ander manier op die uitsondering }

Nou sal die catch-blok twee tipes uitsonderings ontvang: of die JSON is glad nie geldig nie, en dan sal daar 'n uitsondering van die tipe SyntaxError wees, of die JSON is geldig, maar bevat nie die velde wat ons nodig het nie, en dan sal daar 'n uitsondering van die tipe ProductCostError wees.

Kom ons sal hierdie tipes uitsonderings in die catch-blok vang:

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: 'prys of hoeveelheid van produk ontbreek' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('Ongeldige produk JSON'); } else if (error.name == 'ProductCostError') { alert('Produk het geen prys of hoeveelheid nie'); } }

Laat ons sê 'n JSON van die volgende vorm kom na jou toe:

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

Toets hierdie JSON vir algemene geldigheid tydens ontleding, en na ontleding, kontroleer dat die resultaat 'n array is, en nie iets anders nie. As die resultaat nie 'n array is nie - gooi 'n uitsondering.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp