logo

Java Catch useita poikkeuksia

Java Multi-catch lohko

Try-lohkoa voi seurata yksi tai useampi catch-lohko. Jokaisessa kiinnityslohkossa on oltava erilainen poikkeuskäsittelijä. Joten jos sinun on suoritettava erilaisia ​​tehtäviä erilaisten poikkeusten esiintyessä, käytä java-multi-catch-blokkia.

Muistettavat kohdat

  • Kerralla tapahtuu vain yksi poikkeus ja kerrallaan suoritetaan vain yksi catch-lohko.
  • Kaikki saalislohkot on järjestettävä tarkimmasta yleisimpään, eli Aritmeettisen poikkeuksen saalis tulee olla ennen poikkeuksen saalis.

Multi-catch Blockin vuokaavio

Java Catch useita poikkeuksia

Esimerkki 1

Katsotaanpa yksinkertainen esimerkki java-multi-catch-estosta.

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'); } } 
Testaa nyt

Lähtö:

lue csv-tiedosto javassa
 Arithmetic Exception occurs rest of the code 

Esimerkki 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'); } } 
Testaa nyt

Lähtö:

 ArrayIndexOutOfBounds Exception occurs rest of the code 

Tässä esimerkissä kokeilulohko sisältää kaksi poikkeusta. Mutta kerralla tapahtuu vain yksi poikkeus ja sitä vastaava catch-lohko suoritetaan.

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'); } } 
Testaa nyt

Lähtö:

 Arithmetic Exception occurs rest of the code 

Esimerkki 4

Tässä esimerkissä luomme NullPointerExceptionin, mutta emme antaneet vastaavaa poikkeustyyppiä. Tällöin kiinnityslohko, joka sisältää pääpoikkeusluokan Poikkeus tulee vetoamaan.

MultipleCatchBlock4.java

java virtuaalikone
 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'); } } 
Testaa nyt

Lähtö:

 Parent Exception occurs rest of the code 

Esimerkki 5

Katsotaanpa esimerkkiä poikkeuksen käsittelemiseksi säilyttämättä poikkeusten järjestystä (eli erityisimmästä yleisimpään).

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...'); } } 
Testaa nyt

Lähtö:

 Compile-time error