Tôi đang cố gắng kiểm tra xem giá trị được chuyển bởi người dùng có phải là hằng số hợp lệ hay không. Đây là mã tôi đã viết.Sử dụng Ngoại lệ để xác thực các đầu vào
enum Media_Delivery {
Streaming, Progressive
}
public class TestMain {
public static void main(String[] args) {
String medi_delivery = "streaming";
try {
Media_Delivery.valueOf("streaming");
} catch (IllegalArgumentException e) {
System.out.print(e);
}
}
}
Bây giờ, ở trên mã nếu chuỗi được chuyển không khớp với enum được liệt kê thì nó sẽ hiển thị IllegalArgumentException
rõ ràng.
Nhưng câu hỏi của tôi là: Đây có phải là cách thích hợp để xác thực không? Vì chúng tôi đang sử dụng cơ chế ngoại lệ của Java để xác thực.
Ai đó có thể đề xuất ý tưởng hay hơn hoặc những gì tôi đã mã hóa ở trên chính nó là tùy chọn tốt nhất?
----- EDIT --------
Một trường hợp khác mà tôi muốn thảo luận:
public class TestMain {
public static void main(String[] args) {
String inputPassed = "2a";
try {
Integer.parseInt(inputPassed);
} catch (NumberFormatException nfe) {
throw new SomeUserDefinedException("Please enter only numeric values");
}
}
Vì vậy, đây là một ý tưởng tốt? Hoặc phải có cơ chế phân tích cú pháp của riêng chúng ta?
Thông thường nó được coi là xấu thực hành để "mã đối với trường hợp ngoại lệ", hay nói cách khác sử dụng ngoại lệ đối với xác định logic. Hãy xem những gì @Chris đề xuất. –