我应该在函数中抛出IllegalArgumentException吗?
我正在构建一个有很多计算的科学软件,当然参数可能有不正确的长度......所以我使用了
IllegalArgumentException
类,因为它似乎是问题的正确名称,但是我应该把throws IllegalArgumentException
放在函数定义中吗?
我问这个是因为在我写完之后,Eclipse编辑器没有让我用try和catch来包围这个函数。我认为这是如何实施尝试和捕获。我已经阅读了Java.com上的异常处理教程,但我不确定我是否理解了关于我的问题的部分。
没有找到相关结果
已邀请:
5 个回复
祁澈盘哼颗
s像
用于表示编程错误。程序本身应该很少能够处理它。有人需要手动修复代码。 应该在函数契约(即javadoc)中以某种方式记录潜在的
s,或者使用显式
,或者在描述输入时记录。如果你没有函数的javadoc,你可能想要添加throws子句只是为了记录使用该函数的潜在缺陷,但通常不鼓励为运行时异常添加throws子句。 如果给出错误的长度实际上不是编程错误,但是异常情况,我会创建一个新的已检查异常(例如BadLengthError)。如果不是特殊情况,请不要使用异常进行流量控制。
坍锭嘉韭蓝
缝皋
箩冀娥
(以及其他一些,例如
)是
的例子。这种类型的异常不是所谓的已检查异常。 Java要求方法声明它们抛出哪些已检查的异常,并且如果被调用的方法可能抛出一个已检查的异常,则调用方法应该声明它自己抛出异常,或者捕获并处理它。 因此,我的具体建议是否定,不要声明。当然,你可能不想抓住它。在大多数情况下,除非这是意外行为,否则您也不想抛弃它。如果方法获得它不喜欢的值是非常正常和合理的,则异常是处理它的错误方法。 您可能还想考虑使用断言。
诞胃