我正在构建一个包含大量计算的科学软件,当然参数可能有错误的长度等...所以我使用了 IllegalArgumentException
类,因为它似乎是问题的正确名称,但我应该将 throws IllegalArgumentException
放在函数定义处?
我问这个是因为在我编写它之后,Eclipse 编辑器没有要求我用 try 和 catch 包围函数。我认为这就是执行 try and catch 的方式。我已经阅读了 Java.com 上的异常处理教程,但我不确定我是否正确理解了有关我的问题的部分。
最佳答案
RuntimeException
,如 IllegalArgumentException
用于指示编程错误。程序本身应该很少能够处理它。需要有人手动修复代码。
潜在的 RuntimeException
应该以某种方式记录在函数契约(即 javadoc)中,或者使用显式 @throws
,或者在描述输入时。如果您没有该函数的 javadoc,您可能想要添加 throws 子句只是为了记录使用该函数的潜在缺陷,但通常不鼓励为运行时异常添加 throws 子句。
如果给出错误的长度实际上不是编程错误,而是异常情况,我会创建一个新的检查异常(例如 BadLengthError)。如果不是异常情况,不要使用异常来进行流控。
关于java - 我应该在函数中抛出 IllegalArgumentException 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5304098/