⊗jsSpExcJSE 149 of 294 menu

JSON izņēmumu piemērs JavaScript

Pieņemsim, ka no ārpuses mums ierodas JSON ar produktu:

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

Jūs jau zināt, ka metode JSON.parse izmetīs izņēmumu, ja JSON ir nekorekts. Ļaujiet mums noķert šo izņēmumu:

try { let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount); } catch (error) { // kā reaģēt uz izņēmumu }

Tomēr var gadīties, ka pats JSON ir korekts, bet nesatur mums vajadzīgos laukus, piemēram, nav cenas lauka:

let json = '{"product": "apple", "amount": 5}'; // nav cenas

Pieņemsim, ka arī šī ir izņēmuma situācija, un šādā gadījumā mēs izmetīsim savu lietotāja izņēmumu:

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: 'trūkst cena vai daudzums produktam' }; } } catch (error) { // kā reaģēt uz izņēmumu }

Tagad bloks catch saņems divus veidus izņēmumus: vai nu JSON vispār ir nekorekts, un tad būs SyntaxError tipa izņēmums, vai arī JSON ir korekts, bet nesatur vajadzīgos laukus, un tad būs ProductCostError tipa izņēmums.

Ļaujiet mums catch blokā noķert šos izņēmumu veidus:

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: 'trūkst cena vai daudzums produktam' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('Nekorekts JSON produkts'); } else if (error.name == 'ProductCostError') { alert('Produktam trūkst cena vai daudzums'); } }

Pieņemsim, ka jums ierodas šāda veida JSON:

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

Pārbaudiet šo JSON vispārējai korektumam parsējot, un pēc parsēšanas pārbaudiet, vai rezultātā tiek iegūts masīvs, nevis kaut kas cits. Ja rezultātā tiek iegūts nevis masīvs - izmetiet izņēmumu.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt