uitsondering teenoor fout
Onverwagte gedrag sal waarskynlik voorkom wanneer 'n program loop. Dit kan as gevolg van uitsonderings of foute wees. Uitsonderings is gebeurtenisse wat die normale programvloei kan versteur. Foute is toestande wat as onherstelbaar beskou kan word. Uitsonderings hou meestal verband met die toepassing self, terwyl foute verband hou met die stelsel waarop die program loop.
Wat is 'n uitsondering?
Uitsondering is 'n gebeurtenis wat die normale programvloei kan versteur. Die naam uitsondering kom van "uitsonderlike gebeurtenis". Om 'n uitsondering te gooi is die proses om 'n uitsonderingsvoorwerp te skep en dit aan die looptydstelsel oor te gee. Uitsonderingsvoorwerp word geskep deur die metode waarin die uitsondering plaasgevind het. Uitsonderingsobjek bevat nuttige inligting soos die tipe en die beskrywing van die uitsondering. Wanneer die looptydstelsel die uitsonderingsvoorwerp ontvang, sal dit probeer om iemand te vind om dit binne die oproepstapel te hanteer deur dit in die omgekeerde volgorde (waarin die metodes geroep is) te loop. Oproepstapel is die geordende lys metodes wat geroep is voor die metode waarin die uitsondering plaasgevind het. Die looptydstelsel is suksesvol as dit 'n metode met 'n uitsonderingshanteerder vind. Uitsonderingshanteerder is 'n kodeblok wat die genoemde uitsondering amptelik kan hanteer. As die looptydstelsel 'n toepaslike hanteerder vind (d.w.s. tipe uitsondering pas by die tipe wat hanteer kan word), sal dit die uitsonderingsvoorwerp aan die hanteerder deurgee. Dit word genoem om die uitsondering te vang. Indien die uitsondering egter nie hanteer kan word nie, sal die program beëindig word. In Java erf uitsonderings van 'Throwable class.' NullPointerException en ArrayIndexOutOfBoundsException is twee algemene uitsonderings in Java.
Wat is 'n fout?
'n Fout is 'n toestand wat as onherstelbaar beskou kan word, soos dat die program 'n hoeveelheid geheue benodig wat groter is as wat beskikbaar is. Hierdie foute kan nie tydens looptyd hanteer word nie. As 'n fout voorkom, sal die program beëindig word. In Java erf foute van Throwable-klas. Foute staan gewoonlik vir ernstige probleme wat die programmeerder (of die toepassing) nie moet probeer opvang nie. Foute is bloot abnormale toestande, wat nooit verwag word om onder normale omstandighede te voorkom nie, en dus nooit voorsien word nie. Byvoorbeeld, OutOfMemoryError, StackOverflowError en ThreadDead is sulke foute. Metodes moet nooit hanteerders vir foute hê nie.
Wat is die verskil tussen Uitsondering en Fout?
Beide foute en uitsonderings is ongewenste voorkoms tydens die uitvoering van 'n program. Hulle het egter sleutelverskille. Uitsonderings kan deur die programmeerder voorsien word, terwyl 'n fout moeilik is om te voorsien. Uitsonderings kan gekontroleer of ongemerk word. Maar foute is altyd ongemerk. Uitsonderings dui gewoonlik op 'n fout wat deur die programmeerder veroorsaak word. Foute kom egter voor as gevolg van 'n stelselfout of 'n onvanpaste gebruik van 'n hulpbron. Daarom moet uitsonderings op toepassingsvlak hanteer word, terwyl foute op stelselvlak versorg moet word (slegs indien moontlik). Nadat u 'n uitsondering hanteer het, is u gewaarborg om terug te keer na normale programvloei. Maar selfs as 'n fout opgespoor word, kan die programmeerder in die eerste plek nie weet hoe om dit te hanteer nie. Anders as tradisionele fouthantering, laat uitsonderings toe om fouthanteringskode van gewone kode te skei.