logo

Afhandeling van uitzonderingen in Java

  1. Afhandeling van uitzonderingen
  2. Voordeel van uitzonderingsafhandeling
  3. Hiërarchie van uitzonderingsklassen
  4. Soorten uitzonderingen
  5. Uitzonderingsvoorbeeld
  6. Scenario's waarin zich een uitzondering kan voordoen

De Afhandeling van uitzonderingen in Java is een van de machtigen mechanisme om runtimefouten af ​​te handelen zodat de normale stroom van de applicatie kan worden gehandhaafd.

In deze tutorial leren we over Java-uitzonderingen, de typen ervan en het verschil tussen gecontroleerde en niet-gecontroleerde uitzonderingen.

hoe de ontwikkelaarsmodus uit te schakelen

Wat is uitzondering in Java?

Woordenboekbetekenis: Uitzondering is een abnormale toestand.

In Java is een uitzondering een gebeurtenis die de normale stroom van het programma verstoort. Het is een object dat tijdens runtime wordt gegooid.

Wat is uitzonderingsafhandeling?

Exception Handling is een mechanisme voor het afhandelen van runtime-fouten zoals ClassNotFoundException, IOException, SQLException, RemoteException, enz.

Voordeel van uitzonderingsafhandeling

Het belangrijkste voordeel van uitzonderingsafhandeling is om de normale stroom van de applicatie te behouden . Een uitzondering verstoort normaal gesproken de normale stroom van de applicatie; daarom moeten we met uitzonderingen omgaan. Laten we een scenario overwegen:

 statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7; statement 8; statement 9; statement 10; 

Stel dat er 10 instructies in een Java-programma voorkomen en dat er een uitzondering optreedt bij instructie 5; de rest van de code wordt niet uitgevoerd, d.w.z. de instructies 6 tot en met 10 worden niet uitgevoerd. Wanneer we echter uitzonderingsafhandeling uitvoeren, wordt de rest van de instructies uitgevoerd. Daarom maken wij gebruik van exception handling Java .

Ken jij?
  • Wat is het verschil tussen gecontroleerde en niet-gecontroleerde uitzonderingen?
  • Wat gebeurt er achter de code int data=50/0;?
  • Waarom meerdere catch-blokken gebruiken?
  • Is er een mogelijkheid dat het definitieve blok niet wordt uitgevoerd?
  • Wat is uitzonderingspropagatie?
  • Wat is het verschil tussen het zoekwoord throw en throws?
  • Wat zijn de vier regels voor het gebruik van uitzonderingsafhandeling met methode-overschrijving?

Hiërarchie van Java-uitzonderingsklassen

De klasse java.lang.Throwable is de hoofdklasse van de Java Exception-hiërarchie die wordt geërfd door twee subklassen: Exception en Error. De hiërarchie van Java Exception-klassen wordt hieronder weergegeven:

hiërarchie van uitzonderingsafhandeling

Soorten Java-uitzonderingen

Er zijn hoofdzakelijk twee soorten uitzonderingen: aangevinkte en niet-gecontroleerde. Een fout wordt beschouwd als de niet-gecontroleerde uitzondering. Volgens Oracle zijn er echter drie soorten uitzonderingen, namelijk:

  1. Uitzondering aangevinkt
  2. Niet-aangevinkte uitzondering
  3. Fout
hiërarchie van uitzonderingsafhandeling

Verschil tussen aangevinkte en niet-gecontroleerde uitzonderingen

1) Uitzondering aangevinkt

De klassen die de klasse Throwable rechtstreeks overnemen, met uitzondering van RuntimeException en Error, staan ​​bekend als gecontroleerde uitzonderingen. Bijvoorbeeld IOException, SQLException, enz. Gecontroleerde uitzonderingen worden tijdens het compileren gecontroleerd.

2) Niet-aangevinkte uitzondering

De klassen die de RuntimeException overnemen, staan ​​bekend als niet-gecontroleerde uitzonderingen. Bijvoorbeeld ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException, enz. Niet-gecontroleerde uitzonderingen worden niet gecontroleerd tijdens het compileren, maar wel tijdens runtime.

3) Fout

Fout is onherstelbaar. Enkele voorbeelden van fouten zijn OutOfMemoryError, VirtualMachineError, AssertionError enz.

Trefwoorden voor Java-uitzonderingen

Java biedt vijf trefwoorden die worden gebruikt om de uitzondering af te handelen. In de volgende tabel worden ze allemaal beschreven.

TrefwoordBeschrijving
pogingHet trefwoord 'try' wordt gebruikt om een ​​blok te specificeren waar we een uitzonderingscode moeten plaatsen. Het betekent dat we try block niet alleen kunnen gebruiken. Het try-blok moet worden gevolgd door catch of final.
vangstHet 'catch'-blok wordt gebruikt om de uitzondering af te handelen. Het moet worden voorafgegaan door een try-blok, wat betekent dat we het catch-blok niet alleen kunnen gebruiken. Het kan worden gevolgd door uiteindelijk later te blokkeren.
EindelijkHet blok 'eindelijk' wordt gebruikt om de benodigde code van het programma uit te voeren. Het wordt uitgevoerd, ongeacht of een uitzondering wordt afgehandeld of niet.
gooienHet sleutelwoord 'throw' wordt gebruikt om een ​​uitzondering te genereren.
gooitHet sleutelwoord 'throws' wordt gebruikt om uitzonderingen te declareren. Het specificeert dat er een uitzondering in de methode kan optreden. Er wordt geen uitzondering gemaakt. Het wordt altijd gebruikt met methodehandtekening.

Voorbeeld van verwerking van Java-uitzonderingen

Laten we een voorbeeld bekijken van Java Exception Handling, waarbij we een try-catch-instructie gebruiken om de uitzondering af te handelen.

JavaExceptionExample.java

 public class JavaExceptionExample{ public static void main(String args[]){ try{ //code that may raise exception int data=100/0; }catch(ArithmeticException e){System.out.println(e);} //rest code of the program System.out.println('rest of the code...'); } } 
Test het nu

Uitgang:

 Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code... 

In het bovenstaande voorbeeld genereert 100/0 een ArithmeticException die wordt afgehandeld door een try-catch-blok.

Algemene scenario's van Java-uitzonderingen

Er worden enkele scenario's gegeven waarin niet-gecontroleerde uitzonderingen kunnen optreden. Ze zijn als volgt:

1) Een scenario waarin ArithmeticException optreedt

Als we een getal door nul delen, treedt er een ArithmeticException op.

 int a=50/0;//ArithmeticException 

2) Een scenario waarin NullPointerException optreedt

Als we in een van de waarden een nulwaarde hebben variabel , het uitvoeren van een bewerking op de variabele genereert een NullPointerException.

 String s=null; System.out.println(s.length());//NullPointerException 

3) Een scenario waarin NumberFormatException optreedt

Als de opmaak van een variabele of getal niet overeenkomt, kan dit resulteren in NumberFormatException. Stel dat we een snaar variabele die karakters bevat; het omzetten van deze variabele in cijfers zal NumberFormatException veroorzaken.

 String s='abc'; int i=Integer.parseInt(s);//NumberFormatException 

4) Een scenario waarin ArrayIndexOutOfBoundsException optreedt

Wanneer een array zijn grootte overschrijdt, treedt de ArrayIndexOutOfBoundsException op. Er kunnen andere redenen zijn voor het optreden van ArrayIndexOutOfBoundsException. Denk eens aan de volgende uitspraken.

 int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException 

Java-uitzonderingsindex

  1. Java Try-Catch-blok
  2. Java Multiple Catch-blok
  3. Java-geneste poging
  4. Java eindelijk blokkeren
  5. Java Throw-trefwoord
  6. Doorgifte van Java-uitzonderingen
  7. Java gooit trefwoord
  8. Java-worp versus worpen
  9. Java Final vs. Eindelijk vs. Finaliseren
  10. Afhandeling van Java-uitzonderingen met methode-overschrijving
  11. Aangepaste Java-uitzonderingen