- Afhandeling van uitzonderingen
- Voordeel van uitzonderingsafhandeling
- Hiërarchie van uitzonderingsklassen
- Soorten uitzonderingen
- Uitzonderingsvoorbeeld
- 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?
|
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:
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:
- Uitzondering aangevinkt
- Niet-aangevinkte uitzondering
- Fout
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.
Trefwoord | Beschrijving |
---|---|
poging | Het 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. |
vangst | Het '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. |
Eindelijk | Het 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. |
gooien | Het sleutelwoord 'throw' wordt gebruikt om een uitzondering te genereren. |
gooit | Het 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
- Java Try-Catch-blok
- Java Multiple Catch-blok
- Java-geneste poging
- Java eindelijk blokkeren
- Java Throw-trefwoord
- Doorgifte van Java-uitzonderingen
- Java gooit trefwoord
- Java-worp versus worpen
- Java Final vs. Eindelijk vs. Finaliseren
- Afhandeling van Java-uitzonderingen met methode-overschrijving
- Aangepaste Java-uitzonderingen