Aanbevolen, 2024

Editor'S Choice

Verschil tussen fout en uitzondering in Java

"Throwable" fungeren als de basis voor de fout- en uitzonderingshiërarchie van Java. "Fout" is een kritieke voorwaarde die niet kan worden afgehandeld door de code van het programma. "Uitzondering" is de uitzonderlijke situatie die kan worden afgehandeld door de code van het programma. Het grote verschil tussen fout en uitzondering is dat een fout wordt veroorzaakt door een gebrek aan systeembronnen en dat een uitzondering wordt veroorzaakt door uw code. Laten we andere verschillen tussen fout en uitzondering samen met een vergelijkingsgrafiek bestuderen.

Vergelijkingstabel

Basis voor vergelijkingFoutUitzondering
basis-Een fout wordt veroorzaakt door een gebrek aan systeembronnen.Een uitzondering wordt veroorzaakt door de code.
HerstelEen fout is oninbaar.Een uitzondering kan worden hersteld.
trefwoordenEr is geen manier om een ​​fout door de programmacode af te handelen.Uitzonderingen worden behandeld met behulp van de drie trefwoorden 'proberen', 'vangen' en 'gooien'.
gevolgen
Als de fout wordt gedetecteerd, wordt het programma abnormaal beëindigd.Als een uitzondering wordt gedetecteerd, wordt deze op dezelfde manier gegooid door de zoekwoorden 'gooien' en 'vangen'.
TypesFouten worden geclassificeerd als niet-gecontroleerd type.Uitzonderingen worden geclassificeerd als aangevinkt of niet-gecontroleerd type.
PakketIn Java worden fouten gedefinieerd als "java.lang.Error" -pakket.In Java worden uitzonderingen gedefinieerd in "java.lang.Exception".
VoorbeeldOutOfMemory, StackOverFlow.Gecontroleerde uitzonderingen: NoSuchMethod, ClassNotFound.
Niet-gecontroleerde uitzonderingen: NullPointer, IndexOutOfBounds.

Definitie van fout

" Fout " is een subklasse van de ingebouwde klasse "Throwable". Fouten zijn de kritieke omstandigheden die optreden als gevolg van het ontbreken van systeembronnen, en het kan niet worden afgehandeld door de code van het programma. Fouten kunnen op geen enkele manier worden hersteld, omdat ze niet kunnen worden gemaakt, geworpen, gepakt of beantwoord. Fouten worden veroorzaakt door de catastrofale storing die gewoonlijk niet door uw programma kan worden afgehandeld.

Fouten zijn altijd van het niet-gecontroleerde type, omdat de compiler geen kennis heeft over het optreden ervan. Fouten komen altijd voor in de runtime-omgeving. De fout kan worden verklaard aan de hand van een voorbeeld, het programma heeft een fout van stackoverloop, onvoldoende geheugenfout of een systeemcrashfout, dit soort fouten zijn te wijten aan het systeem. De code is niet verantwoordelijk voor dergelijke fouten. Het gevolg van het optreden van de fout is dat het programma abnormaal wordt beëindigd.

Definitie van uitzondering

"Uitzondering" is ook een subklasse van de ingebouwde klasse "Throwable". Uitzonderingen zijn de uitzonderlijke omstandigheden die zich voordoen in een runtime-omgeving. Meestal worden uitzonderingen veroorzaakt door de code van ons programma. Maar uitzonderingen kunnen door het programma zelf worden afgehandeld, omdat uitzonderingen kunnen worden hersteld. Uitzonderingen worden behandeld met behulp van drie sleutelwoorden "proberen", "vangen", "gooien". De syntaxis van het schrijven van een uitzondering is:

 probeer {// schrijf hier uw code op} Catch (Uitzonderingstype) {// schrijf hier uw code in} 

In bovenstaande code is de code die in het try-blok is geschreven de code die u wilt controleren op de uitzondering. Als de uitzondering voorkomt in een try-blok, wordt deze gegooid met behulp van het sleutelwoord "throw". De gegenereerde uitzondering kan worden opgevangen door het blok "catch" van de bovenstaande code. "Uitzonderingstype" is het type van de uitzondering die is opgetreden.

In eenvoudige woorden kunnen we zeggen dat de fouten die zijn opgetreden als gevolg van de onjuiste code uitzonderingen worden genoemd. Als een gevraagde klasse bijvoorbeeld niet wordt gevonden of als een gevraagde methode niet wordt gevonden. Dit soort uitzonderingen is te wijten aan de code in het programma; het systeem is niet verantwoordelijk voor dit soort uitzonderingen. De uitzonderingen worden geclassificeerd als "aangevinkt" en "niet aangevinkt". Niet-gecontroleerde uitzonderingen zijn niet bekend met de compiler zoals ze voorkomen tijdens runtime, terwijl de compiler de kennis heeft over gecontroleerde uitzonderingen zoals ze bekend staan ​​als compileerprogramma tijdens het compileren.

Belangrijkste verschillen in fout en uitzondering

  1. Fout treedt alleen op wanneer systeembronnen tekortschieten, terwijl een uitzondering wordt veroorzaakt als een code een probleem heeft.
  2. Een fout kan nooit worden hersteld terwijl een uitzondering kan worden hersteld door de code voor te bereiden om met de uitzondering om te gaan.
  3. Een fout kan nooit worden afgehandeld, maar een uitzondering kan worden afgehandeld door de code als de code die een uitzondering genereert, is geschreven in een try- en catch-blok.
  4. Als er een fout is opgetreden, wordt het programma abnormaal beëindigd. Aan de andere kant, als de uitzondering optreedt, zal het programma een uitzondering genereren, en het wordt afgehandeld met behulp van het try and catch-blok.
  5. Fouten zijn van niet-gecontroleerd type, maw fout is niet bekend met compilers, terwijl een uitzondering wordt geclassificeerd als aangevinkt en uitgeschakeld.
  6. Fouten worden gedefinieerd in java.lang.Error-pakket terwijl een uitzondering java.lang.Exception is.

Conclusie:

Uitzonderingen zijn de resultaten van fouten in de codering van het programma en de fouten zijn het gevolg van het onjuist functioneren van het systeem

Top