Inleiding tot uitsonderings in JavaScript
Tans sal ons uitsonderlike situasies in JavaScript beskou. Om te begin, sal ek 'n inleiding maak waarin daar voorbeelde sal wees van uitsonderlike situasies oor die algemeen vir enige programmeertale, en dan sal ons uitvind hoe dit in JavaScript staan.
Wanneer ons ons programme skryf, reken ons implisiet daarop dat alle programmaties-tegniese meganismes wat ons gebruik, sal werk korrek.
Dit is egter nie altyd die geval nie. Tydens die oordrag van data oor die netwerk, gebeur daar 'n verbindingsbreuk en data kom by ons aan in 'n inkorrekte vorm, of kom glad nie aan nie. Tydens die skryf van 'n lêer blyk dit dat die toegekende spasie op die hardeskyf op is, en die lêer kan nie geskryf word nie. Tydens die lees van 'n lêer blyk dit dat so 'n lêer nie bestaan nie en daar is nêrens om van te lees nie. Tydens die druk van data op 'n drukker gebeur daar 'n kabelbreuk wat die drukker en rekenaar verbind.
Al die beskryfde situasies het 'n gemeenskaplike wese: daar vind 'n sekere fout plaas wat lei tot die onmoontlikheid of sinloosheid om die beplande operasie te voltooi.
Daar is ook situasies waarin 'n sekere fout plaasvind wat nie 'n fout is nie. Byvoorbeeld, jy vra die gebruiker vir sy e-posadres, en hy voer 'n e-posadres in 'n inkorrekte formaat in. Dit is duidelik dat ons program nie kan voortgaan om die e-posadres te verwerk nie, aangesien dit nie korrek is nie. Maar tog is dit nie 'n uitsonderlike situasie nie. Ons program kan self die situasie regstel: dit sal 'n foutboodskap vertoon en die gebruiker sal sy invoer herhaal.
Eintlik is die verskil tussen 'n fout en nie 'n fout nie baie vaag. 'n Gebeurtenis wat een program as 'n uitsonderlike situasie kan beskou, kan 'n ander program beskou as 'n sekere fout waarmee dit kan handel.
Die kriterium hier is die volgende: as, met die ontstaan van 'n probleem, jou program kan voortgaan om uit te voer waarvoor dit bedoel is, dan is dit nie 'n uitsonderlike situasie nie, maar as dit nie kan nie - dan ja, dit is 'n uitsondering.
Byvoorbeeld, ons het 'n program wat moet vra vir die gebruiker se e-posadres. As die gebruiker 'n e-posadres in 'n inkorrekte formaat ingevoer het - is dit nie 'n fout nie. Dit is 'n verwagte probleem en ons program sal die gebruiker vir die e-posadres vra soveel keer totdat hy dit korrek invoer.
Kom ons sê ons program, wat vir die e-posadres vra, moet ook hierdie korrekte e-posadres via die internet stuur. Terselfdertyd blyk dit dat die internet nie werk nie. Hier is dit reeds 'n probleem: die program sal op geen manier die data kan stuur via die internet as die internet nie werk nie. Die program kan nietemin voortgaan met die uitvoering daarvan: dit kan inligting oor die probleem vertoon, die poging om te stuur na 'n rukkie herhaal, en so aan. Maar hierdie aksies is nie heeltemal dit waarvoor die program bedoel was nie, aangesien die hoofaksie - die stuur van die e-posadres - die program nie kan doen nie.
Baie keer hang dit, of dit 'n uitsonderlike situasie is of nie, af van die programmeertaal. In baie tale, as daar skielik 'n deling deur nul plaasgevind het - word dit as 'n uitsondering beskou (aangesien delings deur nul nie moontlik is nie), maar in JavaScript - word dit nie beskou nie (in JavaScript kan deling deur nul plaasvind).