Java - Custom Exception

Xin chào các pháp sư Java tương lai! Hôm nay, chúng ta sẽ cùng lặn vào thế giới kỳ diệu của các Exception tùy chỉnh trong Java. Đừng lo lắng nếu bạn là người mới bắt đầu lập trình; tôi sẽ dẫn dắt bạn từng bước trong hành trình này, giống như tôi đã làm cho hàng trăm sinh viên trong những năm dạy học của mình. Vậy, hãy lấy键盘 của bạn (phép thuật ảo), và cùng thực hiện một số phép thuật ngoại lệ!

Java - Custom Exception

What Are Exceptions? (Những gì là Exception?)

Trước khi chúng ta đi sâu vào các exception tùy chỉnh, hãy nhanh chóng回顾 lại exception là gì trong Java. Hãy tưởng tượng bạn đang nấu một bữa ăn ngon, nhưng đột nhiên bạn nhận ra rằng bạn đã hết một nguyên liệu quan trọng. Điều này tương tự như một exception trong lập trình - đó là một sự kiện không mong muốn làm gián đoạn luồng bình thường của chương trình của bạn.

Java cung cấp rất nhiều exception内置, nhưng đôi khi, chúng ta cần tạo ra riêng. Đó là lúc các exception tùy chỉnh trở nên hữu ích!

Need for Java Custom Exceptions (Tại sao cần các Exception tùy chỉnh trong Java?)

Bạn có thể tự hỏi, "Tại sao chúng ta cần các exception tùy chỉnh khi Java đã có rất nhiều?" Hãy để tôi giải thích bằng một ví dụ thú vị.

Hãy tưởng tượng bạn đang chơi trò "Catch the Exception." Các exception内置 của Java giống như những quả bóng tiêu chuẩn, nhưng đôi khi bạn cần một quả bóng đặc biệt để phù hợp hoàn hảo trong tay bạn. Đó là những gì các exception tùy chỉnh - được thiết kế để phù hợp với nhu cầu cụ thể của chương trình của bạn!

Các exception tùy chỉnh cho phép chúng ta:

  1. Tạo ra các thông báo lỗi có ý nghĩa hơn
  2. Nhóm các exception liên quan
  3. Thêm các thuộc tính bổ sung vào exception

Creating a Custom Exception in Java (Tạo một Exception tùy chỉnh trong Java)

Bây giờ, hãy c rolled up our sleeves và tạo exception tùy chỉnh đầu tiên của chúng ta! Nó dễ dàng hơn bạn nghĩ.

Dưới đây là cấu trúc cơ bản:

public class MyCustomException extends Exception {
public MyCustomException(String message) {
super(message);
}
}

Hãy phân tích này:

  1. Chúng ta tạo một lớp mới và đặt tên cho nó (trong trường hợp này là MyCustomException).
  2. Chúng ta kế thừa lớp Exception (hoặc RuntimeException nếu chúng ta muốn một exception không được kiểm tra).
  3. Chúng ta tạo một constructor nhận một String message.
  4. Chúng ta gọi constructor của lớp cha bằng cách sử dụng super(message).

Java Custom Exception Example (Ví dụ Exception tùy chỉnh trong Java)

Hãy tạo một ví dụ thực tế hơn. Hãy tưởng tượng chúng ta đang tạo một ứng dụng ngân hàng, và chúng ta muốn tạo một exception tùy chỉnh cho khi ai đó cố gắng rút nhiều tiền hơn số tiền họ có trong tài khoản.

public class InsufficientFundsException extends Exception {
private double amount;

public InsufficientFundsException(double amount) {
super("Sorry, insufficient funds. You need " + amount + " more.");
this.amount = amount;
}

public double getAmount() {
return amount;
}
}

Bây giờ, hãy xem cách chúng ta có thể sử dụng exception này trong lớp BankAccount:

public class BankAccount {
private double balance;

public BankAccount(double initialBalance) {
this.balance = initialBalance;
}

public void withdraw(double amount) throws InsufficientFundsException {
if (amount > balance) {
double needs = amount - balance;
throw new InsufficientFundsException(needs);
}
balance -= amount;
System.out.println("Withdrawal successful. New balance: " + balance);
}
}

Và đây là cách chúng ta có thể sử dụng nó trong chương trình chính của chúng ta:

public class BankingApp {
public static void main(String[] args) {
BankAccount account = new BankAccount(100);
try {
account.withdraw(150);
} catch (InsufficientFundsException e) {
System.out.println(e.getMessage());
System.out.println("You need to deposit at least: " + e.getAmount());
}
}
}

Khi bạn chạy chương trình này, nó sẽ выводить:

Sorry, insufficient funds. You need 50.0 more.
You need to deposit at least: 50.0

Thật tuyệt vời phải không? Chúng ta đã tạo ra một exception tùy chỉnh không chỉ cho chúng ta biết có lỗi xảy ra mà còn cung cấp thông tin hữu ích về số tiền cần thêm!

Example: Creating a Custom Class by Extending RuntimeException (Ví dụ: Tạo một lớp tùy chỉnh bằng cách kế thừa RuntimeException)

Đôi khi, bạn có thể muốn tạo một exception không được kiểm tra. Trong trường hợp đó, bạn sẽ kế thừa RuntimeException thay vì Exception. Dưới đây là một ví dụ:

public class InvalidAgeException extends RuntimeException {
public InvalidAgeException(String message) {
super(message);
}
}

Và đây là cách bạn có thể sử dụng nó:

public class Person {
private int age;

public void setAge(int age) {
if (age < 0 || age > 150) {
throw new InvalidAgeException("Age must be between 0 and 150");
}
this.age = age;
}
}

Trong trường hợp này, chúng ta không cần phải khai báo exception trong thông số đầu vào của phương thức hoặc bắt nó một cách rõ ràng (mặc dù thường là một ý tưởng tốt để làm vậy).

Conclusion (Kết luận)

Và thế là bạn đã có nó, các bạn! Bạn vừa học cách tạo và sử dụng các exception tùy chỉnh trong Java. Nhớ rằng, các exception tùy chỉnh giống như瑞士军刀 cá nhân của bạn trong thế giới lập trình - chúng giúp bạn xử lý lỗi một cách hiệu quả hơn và làm cho mã của bạn dễ đọc và duy trì hơn.

Trong hành trình Java tiếp theo của bạn, bạn sẽ tìm thấy nhiều cách sử dụng hơn cho các exception tùy chỉnh. Chúng là một công cụ mạnh mẽ trong bộ công cụ lập trình của bạn, giúp bạn tạo ra các ứng dụng vững chắc và thân thiện với người dùng.

Tiếp tục luyện tập, tiếp tục lập trình, và quan trọng nhất, hãy vui vẻ! Cuối cùng, như tôi luôn nói với sinh viên của mình, lập trình giống như phép thuật - bạn đang tạo ra thứ gì đó từ không có gì. Và bây giờ, bạn thậm chí có thể kiểm soát cách chương trình của bạn hành xử khi mọi thứ đi sai hướng. Thật tuyệt vời phải không?

Đến gặp lại lần sau, chúc các bạn lập trình vui vẻ!

Credits: Image by storyset