- Avvikshåndtering
- Fordel med unntakshåndtering
- Hierarki av unntaksklasser
- Typer unntak
- Eksempel på unntak
- Scenarier der et unntak kan forekomme
De Unntakshåndtering i Java er en av de mektige mekanisme for å håndtere kjøretidsfeil slik at normal flyt av applikasjonen kan opprettholdes.
I denne opplæringen vil vi lære om Java-unntak, dets typer og forskjellen mellom avmerket og uavmerket unntak.
java-streng til boolsk
Hva er unntak i Java?
Ordbokens betydning: Unntaket er en unormal tilstand.
I Java er et unntak en hendelse som forstyrrer den normale flyten av programmet. Det er et objekt som kastes under kjøring.
Hva er unntakshåndtering?
Exception Handling er en mekanisme for å håndtere kjøretidsfeil som ClassNotFoundException, IOException, SQLException, RemoteException, etc.
Fordel med unntakshåndtering
Kjernefordelen med unntakshåndtering er for å opprettholde normal flyt av applikasjonen . Et unntak forstyrrer normalt den normale flyten av applikasjonen; det er derfor vi må håndtere unntak. La oss vurdere et scenario:
statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7; statement 8; statement 9; statement 10;
Anta at det er 10 setninger i et Java-program og et unntak forekommer ved setning 5; resten av koden vil ikke bli utført, dvs. setningene 6 til 10 vil ikke bli utført. Men når vi utfører unntakshåndtering, vil resten av setningene bli utført. Derfor bruker vi unntakshåndtering i Java .
Vet du?
|
Hierarki av Java Exception-klasser
Java.lang.Throwable-klassen er rotklassen til Java Exception-hierarkiet som er arvet av to underklasser: Exception og Error. Hierarkiet til Java Exception-klasser er gitt nedenfor:
Typer Java-unntak
Det er hovedsakelig to typer unntak: avmerket og ukontrollert. En feil betraktes som det ukontrollerte unntaket. I følge Oracle er det imidlertid tre typer unntak, nemlig:
- Krysset av Unntak
- Uavmerket unntak
- Feil
Forskjellen mellom avmerket og uavmerket unntak
1) Avkrysset unntak
Klassene som direkte arver Throwable-klassen unntatt RuntimeException og Error er kjent som sjekkede unntak. For eksempel, IOException, SQLException, etc. Kontrollerte unntak kontrolleres ved kompilering.
2) Uavmerket unntak
Klassene som arver RuntimeException er kjent som ukontrollerte unntak. For eksempel ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException osv. Unntak som ikke er merket av, blir ikke sjekket ved kompilering, men de blir sjekket under kjøring.
3) Feil
Feilen er uopprettelig. Noen eksempler på feil er OutOfMemoryError, VirtualMachineError, AssertionError etc.
Java-unntaksnøkkelord
Java gir fem nøkkelord som brukes til å håndtere unntaket. Tabellen nedenfor beskriver hver.
Nøkkelord | Beskrivelse |
---|---|
prøve | Nøkkelordet 'try' brukes til å spesifisere en blokk hvor vi skal plassere en unntakskode. Det betyr at vi ikke kan bruke prøveblokk alene. Prøveblokken må følges av enten fangst eller til slutt. |
å fange | 'fangst'-blokken brukes til å håndtere unntaket. Den må innledes med try-blokk, som betyr at vi ikke kan bruke catch-blokk alene. Den kan følges av endelig blokkering senere. |
endelig | 'Endelig'-blokken brukes til å utføre den nødvendige koden til programmet. Det utføres enten et unntak håndteres eller ikke. |
kaste | Nøkkelordet 'kast' brukes til å kaste et unntak. |
kaster | Nøkkelordet 'kaster' brukes til å erklære unntak. Den spesifiserer at det kan forekomme et unntak i metoden. Det gir ikke et unntak. Den brukes alltid med metodesignatur. |
Eksempel på Java-unntakshåndtering
La oss se et eksempel på Java Exception Handling der vi bruker en try-catch-setning for å håndtere unntaket.
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 det nå
Produksjon:
Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code...
I eksemplet ovenfor øker 100/0 et ArithmeticException som håndteres av en try-catch-blokk.
Vanlige scenarier for Java-unntak
Det er gitt noen scenarier der ukontrollerte unntak kan forekomme. De er som følger:
1) Et scenario der ArithmeticException forekommer
Hvis vi deler et tall med null, oppstår det et aritmetisk unntak.
int a=50/0;//ArithmeticException
2) Et scenario der NullPointerException oppstår
Hvis vi har en nullverdi i noen variabel , utførelse av en hvilken som helst operasjon på variabelen kaster en NullPointerException.
String s=null; System.out.println(s.length());//NullPointerException
3) Et scenario der NumberFormatException oppstår
Hvis formateringen av en variabel eller tall ikke samsvarer, kan det føre til NumberFormatException. Anta at vi har en streng variabel som har tegn; konvertering av denne variabelen til siffer vil føre til NumberFormatException.
String s='abc'; int i=Integer.parseInt(s);//NumberFormatException
4) Et scenario der ArrayIndexOutOfBoundsException oppstår
Når en matrise overskrider sin størrelse, oppstår ArrayIndexOutOfBoundsException. det kan være andre grunner til å oppstå ArrayIndexOutOfBoundsException. Tenk på følgende utsagn.
int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException
Java Exceptions Index
- Java Try-Catch Block
- Java Multiple Catch Block
- Java Nested Prøv
- Java blokkerer endelig
- Java-kast nøkkelord
- Java-unntaksforplantning
- Java kaster nøkkelord
- Java-kast vs kast
- Java Final vs Finally vs Finalize
- Java-unntakshåndtering med metodeoverstyring
- Java tilpassede unntak