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

Tầm quan trọng của lớp Throwable và các phương thức của nó trong Java là gì?

Có thể ném lớp là lớp cha của tất cả các lỗi và ngoại lệ trong Java. Các đối tượng là các bản sao của lớp này được ném bởi Máy ảo Java hoặc có thể được ném bằng ném tuyên bố. Tương tự, lớp này hoặc một trong các lớp con của nó có thể là kiểu đối số trong mệnh đề bắt.

Bản sao của hai lớp con Lỗi Ngoại lệ được sử dụng để chỉ ra rằng các trường hợp ngoại lệ đã xảy ra, các trường hợp này được tạo ra trong bối cảnh của tình huống ngoại lệ để bao gồm thông tin liên quan.

Các phương thức ngoại lệ thường được sử dụng của lớp Throwable

  • public String getMessage (): trả về chuỗi thông báo về ngoại lệ.
  • getCause có thể ném công khai (): trả về nguyên nhân của ngoại lệ. Nó sẽ trả về giá trị rỗng nếu nguyên nhân không xác định hoặc không tồn tại.
  • public String toString (): trả về một mô tả ngắn về ngoại lệ.
  • public void printStackTrace (PrintStream s): in mô tả ngắn về ngoại lệ (sử dụng toString ()) + dấu vết ngăn xếp cho ngoại lệ này trên luồng đầu ra lỗi (System.err).

Ví dụ

class ArithmaticTest {
   public void division(int num1, int num2) {
      try {
         //java.lang.ArithmeticException here.
         System.out.println(num1/num2);
         //catch ArithmeticException here.
      } catch(ArithmeticException e) {
         //print the message string about the exception.
         System.out.println("getMessage(): " + e.getMessage());
         //print the cause of the exception.
         System.out.println("getCause(): " + e.getCause());
         //print class name + “: “ + message.
         System.out.println("toString(): " + e.toString());
         System.out.println("printStackTrace(): ");
         //prints the short description of the exception + a stack trace for this exception.
         e.printStackTrace();
      }
   }
}
public class Test {
   public static void main(String args[]) {
      //creating ArithmaticTest object
      ArithmaticTest test = new ArithmaticTest();
      //method call
      test.division(20, 0);
   }
}

Đầu ra

getMessage(): / by zero
getCause(): null
toString(): java.lang.ArithmeticException: / by zero
printStackTrace():
java.lang.ArithmeticException: / by zero
at ArithmaticTest.division(Test.java:5)
at Test.main(Test.java:27)