logo

Java Catch flere unntak

Java Multi-catch blokk

En prøveblokk kan følges av en eller flere fangstblokker. Hver catch-blokk må inneholde en annen unntaksbehandler. Så hvis du må utføre forskjellige oppgaver ved forekomsten av forskjellige unntak, bruk java multi-catch block.

Poeng å huske

  • Om gangen inntreffer bare ett unntak og om gangen utføres bare en fangstblokk.
  • Alle catch-blokker må bestilles fra mest spesifikke til mest generelle, dvs. catch for ArithmeticException må komme før catch for Exception.

Flytskjema for Multi-catch Block

Java Catch flere unntak

Eksempel 1

La oss se et enkelt eksempel på java multi-catch blokk.

MultipleCatchBlock1.java

 public class MultipleCatchBlock1 { public static void main(String[] args) { try{ int a[]=new int[5]; a[5]=30/0; } catch(ArithmeticException e) { System.out.println('Arithmetic Exception occurs'); } catch(ArrayIndexOutOfBoundsException e) { System.out.println('ArrayIndexOutOfBounds Exception occurs'); } catch(Exception e) { System.out.println('Parent Exception occurs'); } System.out.println('rest of the code'); } } 
Test det nå

Produksjon:

hva er unntakshåndtering i java
 Arithmetic Exception occurs rest of the code 

Eksempel 2

MultipleCatchBlock2.java

 public class MultipleCatchBlock2 { public static void main(String[] args) { try{ int a[]=new int[5]; System.out.println(a[10]); } catch(ArithmeticException e) { System.out.println('Arithmetic Exception occurs'); } catch(ArrayIndexOutOfBoundsException e) { System.out.println('ArrayIndexOutOfBounds Exception occurs'); } catch(Exception e) { System.out.println('Parent Exception occurs'); } System.out.println('rest of the code'); } } 
Test det nå

Produksjon:

 ArrayIndexOutOfBounds Exception occurs rest of the code 

I dette eksemplet inneholder try-blokken to unntak. Men om gangen inntreffer bare ett unntak og dens tilsvarende fangstblokk utføres.

MultipleCatchBlock3.java

 public class MultipleCatchBlock3 { public static void main(String[] args) { try{ int a[]=new int[5]; a[5]=30/0; System.out.println(a[10]); } catch(ArithmeticException e) { System.out.println('Arithmetic Exception occurs'); } catch(ArrayIndexOutOfBoundsException e) { System.out.println('ArrayIndexOutOfBounds Exception occurs'); } catch(Exception e) { System.out.println('Parent Exception occurs'); } System.out.println('rest of the code'); } } 
Test det nå

Produksjon:

 Arithmetic Exception occurs rest of the code 

Eksempel 4

I dette eksemplet genererer vi NullPointerException, men ga ikke den tilsvarende unntakstypen. I slike tilfeller, catch-blokken som inneholder den overordnede unntaksklassen Unntak vil påberopes.

MultipleCatchBlock4.java

sortert tuppelpyton
 public class MultipleCatchBlock4 { public static void main(String[] args) { try{ String s=null; System.out.println(s.length()); } catch(ArithmeticException e) { System.out.println('Arithmetic Exception occurs'); } catch(ArrayIndexOutOfBoundsException e) { System.out.println('ArrayIndexOutOfBounds Exception occurs'); } catch(Exception e) { System.out.println('Parent Exception occurs'); } System.out.println('rest of the code'); } } 
Test det nå

Produksjon:

 Parent Exception occurs rest of the code 

Eksempel 5

La oss se et eksempel, for å håndtere unntaket uten å opprettholde rekkefølgen av unntak (dvs. fra mest spesifikke til mest generelle).

MultipleCatchBlock5.java

 class MultipleCatchBlock5{ public static void main(String args[]){ try{ int a[]=new int[5]; a[5]=30/0; } catch(Exception e){System.out.println('common task completed');} catch(ArithmeticException e){System.out.println('task1 is completed');} catch(ArrayIndexOutOfBoundsException e){System.out.println('task 2 completed');} System.out.println('rest of the code...'); } } 
Test det nå

Produksjon:

 Compile-time error