Chúng ta có thể tạo một exception mới để phục vụ cho các yêu cầu riêng của dự án bằng cách kế thừa từ Exception class.
class MyException extends Exception { public MyException(String s) { // Call constructor of parent Exception super(s); } } // A Class that uses above MyException public class Main { // Driver Program public static void main(String args[]) { try { // Throw an object of user defined exception throw new MyException("Shareprogramming"); } catch (MyException ex) { System.out.println("Caught"); // Print the message from MyException object System.out.println(ex.getMessage()); } } }
Output:
Caught
Shareprogramming
Khởi tạo MyException với chuỗi message thông báo khi MyException được ném. Chúng ta có thể lấy chuỗi message thông qua getMessage().
Chúng ta cũng có thể tạo một exception mà không thèm theo message.
class MyException extends Exception { } // A Class that uses above MyException public class Main { // Driver Program public static void main(String args[]) { try { // Throw an object of user defined exception throw new MyException(); } catch (MyException ex) { System.out.println("Caught"); // Print the message from MyException object System.out.println(ex.getMessage()); } } }
Output:
Caught
null
Lời kết
Về căn bản thì các Exception chỉ có ý nghĩa về mặc ngữ nghĩa chứ bên dưới các exception đều có cơ chế xử lý như nhau. Các exception giúp chúng ta khoanh vùng lỗi nhanh chóng để có các biện pháp sữa lỗi tương ứng. Ví dụ NullPointerException thì nghĩa là chúng ta truy xuất giá trị từ object có giá trị null, ArithmeticException nghĩa là dữ liệu thực hiện phép tính có vấn đề như 10/0 chẳng hạn etc.
Nguồn tham khảo
https://www.geeksforgeeks.org/g-fact-32-user-defined-custom-exception-in-java/