Verschil tussen fout en uitzondering in Java

Schrijver: Laura McKinney
Datum Van Creatie: 2 April 2021
Updatedatum: 5 Kunnen 2024
Anonim
Difference Between Exception and Error | Learn Coding
Video: Difference Between Exception and Error | Learn Coding

Inhoud


"Throwable" fungeren als de root voor de fout- en uitzonderingshiërarchie van Java. "Fout" is een kritieke toestand 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 significante verschil tussen fout en uitzondering is dat een fout wordt veroorzaakt door een gebrek aan systeembronnen en een uitzondering wordt veroorzaakt door uw code. Laten we andere verschillen tussen fout en uitzondering bestuderen, samen met een vergelijkingstabel.

  1. Vergelijkingstabel
  2. Definitie
  3. Belangrijkste verschillen
  4. Gevolgtrekking

Vergelijkingstabel

Basis voor vergelijkingFoutUitzondering
basis-Een fout wordt veroorzaakt door een gebrek aan systeembronnen.Een uitzondering wordt veroorzaakt door de code.
HerstelEen fout kan niet worden hersteld.Een uitzondering kan worden hersteld.
trefwoordenEr is geen manier om een ​​fout met de programmacode af te handelen.Uitzonderingen worden afgehandeld met behulp van 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 gegooid en gepakt door de overeenkomstige "gooi" en "vang" sleutelwoorden.
Soorten Fouten worden geclassificeerd als niet-aangevinkt type.Uitzonderingen zijn geclassificeerd als aangevinkt of niet-aangevinkt.
Pakket In Java worden fouten gedefinieerd als het pakket "java.lang.Error".In Java zijn uitzonderingen gedefinieerd in "java.lang.Exception".
VoorbeeldOutOfMemory, StackOverFlow.Gecontroleerde uitzonderingen: NoSuchMethod, ClassNotFound.
Niet-aangevinkte uitzonderingen: NullPointer, IndexOutOfBounds.


Definitie van fout

Fout”Is een subklasse van de ingebouwde klasse“ Throwable ”. Fouten zijn de kritieke omstandigheden die zich voordoen als gevolg van het ontbreken van de systeembronnen en kunnen niet worden afgehandeld door de code van het programma. Fouten kunnen op geen enkele manier worden hersteld omdat ze niet kunnen worden gemaakt, gegooid, gevangen of beantwoord. Fouten worden veroorzaakt door de catastrofale fout die meestal niet door uw programma kan worden afgehandeld.

Fouten zijn altijd van het ongecontroleerde type, omdat de compiler geen kennis heeft van het voorkomen ervan. Fouten treden altijd op in de runtime-omgeving. De fout kan worden verklaard met behulp van een voorbeeld, het programma heeft een fout met stack-overloop, geheugengebrek 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 afgehandeld met behulp van drie trefwoorden "proberen", "vangen", "gooien". De syntaxis van het schrijven van een uitzondering is:

probeer {// schrijf hier uw code} Catch (uitzonderingstype) {// schrijf hier uw code}

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 in een try-blok voorkomt, wordt deze gegenereerd met het trefwoord 'throw'. De uitzondering die wordt gegenereerd, kan worden opgevangen door het 'vangst'-blok van de bovenstaande code. "Uitzonderingstype" is het type uitzondering dat is opgetreden.

In eenvoudige woorden kunnen we zeggen dat de fouten die zijn opgetreden vanwege de onjuiste code uitzonderingen worden genoemd. Als een aangevraagde klasse bijvoorbeeld niet wordt gevonden of een aangevraagde methode niet wordt gevonden. Dit soort uitzonderingen zijn te wijten aan de code in het programma; het systeem is niet verantwoordelijk voor dit soort uitzonderingen. De uitzonderingen zijn geclassificeerd als "aangevinkt" en "niet aangevinkt". Niet-aangevinkte uitzonderingen zijn niet bekend in de compiler, omdat deze tijdens runtime optreden, terwijl de compiler de kennis heeft over gecontroleerde uitzonderingen, zoals bekend bij de compiler tijdens de compilatie.

  1. Fouten treden alleen op wanneer systeembronnen ontoereikend zijn, 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 de uitzondering af te handelen.
  3. Een fout kan nooit worden afgehandeld, maar een uitzondering kan worden afgehandeld door de code als de code die een uitzondering genereert in een try and catch-blok is geschreven.
  4. Als er een fout is opgetreden, wordt het programma abnormaal beëindigd. Aan de andere kant, als de uitzondering optreedt, genereert het programma een uitzondering en wordt het afgehandeld met behulp van het try and catch-blok.
  5. Fouten zijn van het ongecontroleerde type, d.w.z. fouten zijn niet bekend bij de compilers, terwijl een uitzondering is geclassificeerd als aangevinkt en niet aangevinkt.
  6. Fouten worden gedefinieerd in het pakket java.lang.Error, terwijl een uitzondering wordt gedefinieerd java.lang.Exception.

Gevolgtrekking:

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