logo

Java fånga flera undantag

Java Multi-catch block

Ett försöksblock kan följas av ett eller flera fångstblock. Varje fångstblock måste innehålla en annan undantagshanterare. Så, om du måste utföra olika uppgifter vid förekomsten av olika undantag, använd java multi-catch block.

Punkter att komma ihåg

  • I taget inträffar endast ett undantag och åt gången exekveras endast ett fångstblock.
  • Alla fångstblock måste beställas från mest specifika till mest allmänna, dvs. fångst för ArithmeticException måste komma före catch för undantag.

Flödesschema för Multi-catch Block

Java fånga flera undantag

Exempel 1

Låt oss se ett enkelt exempel på java multi-catch block.

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'); } } 
Testa det nu

Produktion:

teckenstorlekar i latex
 Arithmetic Exception occurs rest of the code 

Exempel 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'); } } 
Testa det nu

Produktion:

 ArrayIndexOutOfBounds Exception occurs rest of the code 

I det här exemplet innehåller provblocket två undantag. Men åt gången inträffar bara ett undantag och dess motsvarande fångstblock exekveras.

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'); } } 
Testa det nu

Produktion:

 Arithmetic Exception occurs rest of the code 

Exempel 4

I det här exemplet genererar vi NullPointerException, men angav inte motsvarande undantagstyp. I sådana fall, catch-blocket som innehåller den överordnade undantagsklassen Undantag kommer att åberopas.

MultipleCatchBlock4.java

använder internet
 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'); } } 
Testa det nu

Produktion:

 Parent Exception occurs rest of the code 

Exempel 5

Låt oss se ett exempel, för att hantera undantaget utan att behålla undantagsordningen (dvs. från det mest specifika till det mest allmänna).

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...'); } } 
Testa det nu

Produktion:

 Compile-time error