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

Khi nào chúng ta nên tạo một lớp ngoại lệ do người dùng xác định trong Java?

Chúng ta nên tạo các ngoại lệ của riêng mình trong Java. Hãy ghi nhớ những điểm sau khi viết các lớp ngoại lệ của riêng chúng tôi

  • Tất cả các trường hợp ngoại lệ phải là con của Throwable.
  • Nếu chúng tôi muốn viết một ngoại lệ đã kiểm tra được tự động thực thi bởi Quy tắc xử lý hoặc Khai báo, chúng tôi cần mở rộng lớp Ngoại lệ.
  • Nếu chúng ta muốn viết một ngoại lệ thời gian chạy, chúng ta cần mở rộng lớp RuntimeException.

Chúng ta có thể xác định lớp Ngoại lệ của riêng mình như sau:

 lớp MyException mở rộng ngoại lệ {} 

Chúng ta chỉ cần mở rộng lớp Ngoại lệ để tạo lớp Ngoại lệ của riêng mình. Đây được coi là những ngoại lệ được kiểm tra. Lớp InsuffnoughFundsException sau đây là một ngoại lệ do người dùng xác định sẽ mở rộng lớp Exception, làm cho nó trở thành một ngoại lệ được kiểm tra.

Ví dụ

 // Tên tệp InsuffnoughFundsException.javaimport java.io. *; class InsuffnoughFundsException mở rộng Exception {private double amount; public InsuffnoughFundsException (số tiền gấp đôi) {this.amount =số tiền; } public double getAmount () {return số tiền; }} // Tên Tệp Kiểm tra Số dư.javaclass CheckAccount {private double balance; số int riêng; public CheckAccount (int number) {this.number =number; } tiền gửi vô hiệu công khai (số tiền gấp đôi) {số dư + =số tiền; } public void rút (số tiền gấp đôi) ném InsuffnoughFundsException {if (số tiền <=số dư) {số dư - =số tiền; } else {gấp đôi nhu cầu =số lượng - số dư; ném InsuffnoughFundsException mới (nhu cầu); }} public double getBalance () {return balance; } public int getNumber () {return number; }} // Tên tệp BankDemo.javapublic class BankDemo {public static void main (String [] args) {CheckAccount c =new CheckAccount (101); System.out.println ("Gửi $ 500 ..."); c.deposit (500,00); thử {System.out.println ("\ n Rút 100 đô la ..."); c.withdraw (100,00); System.out.println ("\ n Đang rút $ 600 ..."); c. rút tiền (600,00); } catch (InsuffnoughFundsException e) {System.out.println ("Xin lỗi, nhưng bạn thiếu $" + e.getAmount ()); e.printStackTrace (); }}} 

Đầu ra

 Gửi tiền 500 đô la ... Rút 100 đô la ... Rút 600 đô la ... Xin lỗi, bạn thiếu 200.0 đô la.>