Nếu bạn phải thực hiện các tác vụ khác nhau mà ở đó có thể xảy ra các ngoại lệ khác nhau, hãy sử dụng đa khối lệnh catch trong java.
Hãy xem ví dụ sau về việc sử dụng nhiều khối lệnh catch trong java
public class TestMultipleCatchBlock { public static void main(String args[]) { try { int a[] = new int[5]; a[5] = 30 / 0; } catch (ArithmeticException e) { System.out.println("task1 is completed"); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("task 2 completed"); } catch (Exception e) { System.out.println("common task completed"); } System.out.println("rest of the code..."); } }
Output:
task1 is completed rest of the code...
Ví dụ:
public class TestMultipleCatchBlock1 { 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("task2 is completed"); } System.out.println("rest of the code..."); } }
Output:
Compile-time error
Chương trình trên bị lỗi tại compile-time là vì khi có ngoại lệ xảy ra thì các khối lệnh catch (ArithmeticException e) và catch (ArrayIndexOutOfBoundsException e) không bao giờ được thực thi, do khối catch (Exception e) đã bắt tất cả các ngoại lệ rồi.