⊗jsSpExcThr 145 of 294 menu

Uitsonderinge gooi in JavaScript

In vorige lesse het ons twee plekke bestudeer waar JavaScript 'n uitsondering gooi in die geval van probleme.

In jou projek kan daar egter ander situasies wees wat vir jou uitsonderlik is, maar vir JavaScript nie. In so 'n geval kan jy jou eie, gebruiker-gedefinieerde uitsonderings skep en gooi.

Kom ons kyk na die sintaks wat nodig is vir dit. Eerstens moet die uitsondering geskep word met die opdrag new Error, met die teks van die uitsondering as parameter:

new Error('teks van die uitsondering');

Dan moet hierdie uitsondering gegooi word met die opdrag throw:

throw new Error('teks van die uitsondering');

Die gooi van 'n uitsondering laat JavaScript dink dat 'n uitsonderlike situasie plaasgevind het. Dit beteken dat so 'n uitsondering gevang kan word met die konstruksie try-catch en op die nodige manier verwerk kan word.

Kom ons kyk na 'n voorbeeld van hoe om dit te gebruik. Laat ons sê ons het 'n funksie wat een getal deur 'n ander deel:

function div(a, b) { return a / b; }

Kom ons aanvaar dat deling deur nul verbode is en dat daar 'n uitsonderlike situasie moet ontstaan wanneer ons dit probeer doen. Vir hierdie doel sal ons in die funksie nagaan of daar nie 'n poging is om deur 0 te deel nie. Indien nie - deel ons, en indien wel - gooi ons 'n uitsondering:

function div(a, b) { if (b !== 0) { return a / b; } else { throw new Error('deling deur nul fout'); } }

Kom ons probeer eers om deur 0 te deel, sonder om die uitsondering te vang:

alert( div(3, 0) );

In hierdie geval sal die uitvoering van die skrip onderbreek word en in die konsole sal daar 'n fout verskyn met die teks 'deling deur nul fout' (toets dit). Kom ons gaan nou ons fout vang en dit op een of ander manier hanteer:

try { alert( div(3, 0) ); } catch (error) { alert('jy probeer om deur 0 te deel, wat verbode is'); }

In JavaScript lei die poging om die wortel van 'n negatiewe getal te trek nie tot die gooi van 'n uitsondering nie:

let result = Math.sqrt(-1); console.log(result); // sal NaN uitvoer

Skryf jou eie funksie wat die wortel van 'n getal sal trek en terselfdertyd 'n uitsondering sal gooi as die wortel uit 'n negatiewe getal getrek word.

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