⊗jsSpExcJSE 149 of 294 menu

Eksempel på unntak med JSON i JavaScript

La oss si at en JSON kommer til oss fra den ytre verden med et produkt:

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

Du vet allerede at metoden JSON.parse vil kaste et unntak hvis JSON-en er ugyldig. La oss fange dette unntaket:

try { let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount); } catch (error) { // responderer på unntaket på en eller annen måte }

Imidlertid kan det hende at JSON-en i seg selv er gyldig, men ikke inneholder feltene vi trenger, for eksempel mangler pris-feltet:

let json = '{"product": "apple", "amount": 5}'; // ingen pris

La oss si at dette også er en unntakssituasjon og i slike tilfeller kaste vårt egne brukerdefinerte unntak:

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: 'mangler pris eller antall for produktet' }; } } catch (error) { // responderer på unntaket på en eller annen måte }

Nå vil catch-blokken motta to typer unntak: enten er JSON helt ugyldig, og da vil det være et unntak av typen SyntaxError, eller JSON er gyldig, men inneholder ikke de nødvendige feltene, og da vil det være et unntak av typen ProductCostError.

La oss i catch-blokken fange disse unntakstypene:

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: 'mangler pris eller antall for produktet' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('Ugyldig produkt-JSON'); } else if (error.name == 'ProductCostError') { alert('Produktet mangler pris eller antall'); } }

La oss si at en JSON av følgende type kommer til deg:

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

Sjekk denne JSON-en for generell gyldighet ved parsing, og etter parsing, sjekk at resultatet er en array, og ikke noe annet. Hvis resultatet ikke er en array - kast et unntak.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis