⊗jsSpExcPrb 150 of 294 menu

Uitsonderings Gooi in JavaScript

Kom ons kyk na die catch blok van die JSON produk taak:

catch (error) { if (error.name == 'SyntaxError') { alert('Ongeldige JSON produk'); } else if (error.name == 'ProductCostError') { alert('Produk het geen prys of hoeveelheid nie'); } }

Soos jy kan sien, vang ons twee uitsonderings wat ons beplan het en reageer op een of ander manier. Maar wat gebeur as daar 'n onvoorziene uitsondering van 'n ander tipe ontstaan? In hierdie geval sal dit ook in die catch blok beland, maar daar sal geen reaksie wees nie, aangesien die uitsondering met 'n ander tipe eenvoudig nie sal val in een van ons if-statements nie.

Wanneer ek sê daar sal geen reaksie wees nie, bedoel ek, regtig geen: selfs nie 'n fout in die konsole sal verskyn nie. Ons kode sal eenvoudig stil wees en nie werk nie.

Daarom bestaan die volgende reël: jou kode moet net die uitsonderings vang waarmee dit weet hoe om te hanteer. As die uitsondering nie bekend is nie, moet dit verder gegooi word met behulp van throw. In hierdie geval sal iemand hoër op wat meer ingelig is dit vang of die uitsondering sal as 'n fout in die konsole verskyn.

Kom ons reg ons kode:

catch (error) { if (error.name == 'SyntaxError') { alert('Ongeldige JSON produk'); } else if (error.name == 'ProductCostError') { alert('Produk het geen prys of hoeveelheid nie'); } else { throw error; // gooi uitsondering verder } }

Die volgende kode word gegee:

try { let arr = JSON.parse(json); for (let i = 0; i < arr.length; i++) { localStorage.setItem(i, arr[i]); } } catch (error) { if (error.name == 'QuotaExceededError') { alert('plek in stoor op'); } if (error.name == 'SyntaxError') { alert('ongeldige JSON'); } }

Wat is fout met hierdie kode? Maak dit reg met 'n beter weergawe.

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