logo

Java Çoklu İstisnaları Yakala

Java Çoklu yakalama bloğu

Bir try bloğunun ardından bir veya daha fazla catch bloğu gelebilir. Her catch bloğu farklı bir istisna işleyicisi içermelidir. Bu nedenle, farklı istisnaların ortaya çıkması durumunda farklı görevler gerçekleştirmeniz gerekiyorsa Java multi-catch bloğunu kullanın.

Hatırlanacak noktalar

  • Bir seferde yalnızca bir istisna oluşur ve aynı anda yalnızca bir catch bloğu yürütülür.
  • Tüm catch blokları en özelden en genele doğru sıralanmalıdır, yani ArithmeticException için catch, Exception için catch'ten önce gelmelidir.

Çoklu Yakalama Bloğunun Akış Şeması

Java Çoklu İstisnaları Yakala

örnek 1

Java çoklu yakalama bloğunun basit bir örneğini görelim.

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'); } } 
Şimdi Test Edin

Çıktı:

teknolojinin avantajları ve dezavantajları
 Arithmetic Exception occurs rest of the code 

Örnek 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'); } } 
Şimdi Test Edin

Çıktı:

 ArrayIndexOutOfBounds Exception occurs rest of the code 

Bu örnekte try bloğu iki istisna içermektedir. Ancak aynı anda yalnızca bir istisna oluşur ve buna karşılık gelen catch bloğu yürütülür.

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'); } } 
Şimdi Test Edin

Çıktı:

 Arithmetic Exception occurs rest of the code 

Örnek 4

Bu örnekte NullPointerException oluşturduk ancak ilgili istisna türünü sağlamadık. Böyle bir durumda ana istisna sınıfını içeren catch bloğu İstisna çağrılacaktır.

MultipleCatchBlock4.java

json dosyası nasıl okunur
 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'); } } 
Şimdi Test Edin

Çıktı:

 Parent Exception occurs rest of the code 

Örnek 5

İstisnaların sırasını (yani en özelden en genele) korumadan istisnayı ele almak için bir örnek görelim.

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...'); } } 
Şimdi Test Edin

Çıktı:

 Compile-time error