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
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