Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để ném lại một ngoại lệ trong Java?

Đôi khi chúng ta có thể cần phải tạo lại một ngoại lệ trong Java. Nếu một khối bắt không thể xử lý ngoại lệ cụ thể mà nó đã bắt được, chúng ta có thể ném lại ngoại lệ. Biểu thức rethrow khiến đối tượng được ném ban đầu được trồng lại.

Bởi vì ngoại lệ đã bị bắt ở phạm vi mà biểu thức rethrow xảy ra, nó sẽ được phát triển lại cho khối try bao quanh tiếp theo. Do đó, nó không thể được xử lý bởi các khối catch ở phạm vi mà biểu thức rethrow đã xảy ra. Bất kỳ khối bắt nào cho khối try kèm theo đều có cơ hội bắt được ngoại lệ.

Cú pháp

catch(Exception e) {
   System.out.println("An exception was thrown");
   throw e;
}

Ví dụ

public class RethrowException {
   public static void test1() throws Exception {
      System.out.println("The Exception in test1() method");
      throw new Exception("thrown from test1() method");
   }
   public static void test2() throws Throwable {
      try {
         test1();
      } catch(Exception e) {
         System.out.println("Inside test2() method");
         throw e;
      }
   }
   public static void main(String[] args) throws Throwable {
      try {
         test2();
      } catch(Exception e) {
         System.out.println("Caught in main");
      }
   }
}

Đầu ra

The Exception in test1() method
Inside test2() method
Caught in main