我正在嘗試檢查用戶傳遞的值是否爲有效常量。這是我寫的代碼。使用異常驗證輸入
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);
}
}
}
現在,在上面的代碼中,如果通過未withing列出的枚舉字符串然後它拋出IllegalArgumentException
這是顯而易見的。
但我的問題是:這是驗證的正確方法嗎?因爲我們正在使用Java的異常機制來驗證。
有人可以提出一個更好的主意,或者我上面編碼的是最好的選擇嗎?
-----編輯--------
,我想討論另一種情況:
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");
}
}
所以這是一個好主意嗎?或者應該有我們自己的解析機制?
通常它被認爲是不好的做法,使用異常「代碼向例外」,換句話說,以確定邏輯。看看@Chris建議的內容。 –