logo

Unntakshåndtering i Java

  1. Avvikshåndtering
  2. Fordel med unntakshåndtering
  3. Hierarki av unntaksklasser
  4. Typer unntak
  5. Eksempel på unntak
  6. 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?
  • Hva er forskjellen mellom sjekkede og ukontrollerte unntak?
  • Hva skjer bak koden int data=50/0;?
  • Hvorfor bruke flere fangblokker?
  • Er det noen mulighet når den endelige blokkeringen ikke blir utført?
  • Hva er forplantning av unntak?
  • Hva er forskjellen mellom søkeordet kast og kast?
  • Hva er de 4 reglene for bruk av unntakshåndtering med metodeoverstyring?

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:

hierarki av unntakshåndtering

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:

  1. Krysset av Unntak
  2. Uavmerket unntak
  3. Feil
hierarki av unntakshåndtering

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økkelordBeskrivelse
prøveNø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.
kasteNøkkelordet 'kast' brukes til å kaste et unntak.
kasterNø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

  1. Java Try-Catch Block
  2. Java Multiple Catch Block
  3. Java Nested Prøv
  4. Java blokkerer endelig
  5. Java-kast nøkkelord
  6. Java-unntaksforplantning
  7. Java kaster nøkkelord
  8. Java-kast vs kast
  9. Java Final vs Finally vs Finalize
  10. Java-unntakshåndtering med metodeoverstyring
  11. Java tilpassede unntak