gpt4 book ai didi

java - 使用异常来验证输入

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:49 25 4
gpt4 key购买 nike

我正在尝试检查用户传递的值是否为有效常量。这是我写的代码。

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);
}

}

}

现在,在上面的代码中,如果传递的字符串不在列出的枚举中,那么它会抛出 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");
}

}

那么这是个好主意吗?或者应该有我们自己的解析机制?

最佳答案

异常(exception)应该用于特殊情况;你不希望发生的事情。验证输入不是很特别。

Josh Bloch 实际上在他的书“Effective Java”中具体概述了这一点,恕我直言,每个 Java 程序员都应该拥有这本书。

编辑:这实际上是解决问题的一个很好的答案:

Check valid enum values before using enum

关于java - 使用异常来验证输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7304067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com