java - 捕获 IllegalArgumentException 的最佳方法是什么

标签 java exception

什么时候最好使用这种类型的异常,如果像这样被捕获,是否能正确处理它?<​​/p>

catch(Exception e)

还是需要显式捕获?

catch(IllegalArgumentException e)

最佳答案

被第一个捕获 - 但其他一些异常也是如此。你不应该抓到比你真正想要的更多的东西。

如果您真的必须捕获它,第二个更好...但是通常这表明调用代码中存在错误。有时这是另一个更高层的方法未验证参数等的情况。在理想的世界中,任何时候抛出 IllegalArgumentException 都应该有一种方法供调用者使用在传入值之前验证该值,或者调用一个将以非异常方式失败的版本(例如 .NET 中的 TryParse 模式,这在没有 out< 的 Java 中公认更难参数)。情况并非总是如此,但每当您遇到 IllegalArgumentException 时,都值得检查一下您是否可以通过在调用方法之前检查值来避免它。

关于java - 捕获 IllegalArgumentException 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2117541/

相关文章:

java - 在内部类中访问外部类变量

java.lang.Thread 无法转换为 java.util.concurrent.ForkJoinWorkerThread

java - 在android studio中调试时如何在运行时检查函数的返回值

Java:通过修改作为参数传递的对象来使数据结构无效

python - 在 Python 中处理超时异常

c++ - 错误 : SymGetLineFromAddr64, GetLastError:487(地址:)

java - 使用异常处理失败场景是否被认为是一种不好的做法?

java - 从网络读取数据

java - 搜索的实现给我错误 客户端发送的请求在语法上不正确

java - 在我的程序中使用 GPL 下的库。我应该如何引用它们?