超出指定范围的整数值的Java异常

时间:2015-01-21 19:41:54

标签: java exception exception-handling

我最近学会了在java中抛出异常。

我正在进行一项练习来编写一个方法,该方法将一个整数(介于1和100之间)作为参数,并将其存储在实例变量中。如果整数不在指定范围内,则会通过异常报告错误。

在多次搜索要使用的异常类之后,我相信IllegalArgumentException在这种情况下最合适。

但是,如此大量的异常类,是否有建议的方法来确定使用哪个异常类?

我即将参加考试,可能会提出这类问题。我能够引入一本教科书作为参考资料,但时间有限,我当然无法/有时间通过​​所有可用的异常课程。

是否有更常用的异常类,我应该首先引用它?

1 个答案:

答案 0 :(得分:1)

我同意你的评估:IllegalArgumentException非常合适。 Java API specification for this说:

  

抛出表示某个方法已被传递为非法或   不恰当的论点。

这正是您描述的情景。

至于方法论,没有硬标准,因为在决定如何在不寻常的情况下解释定义时,总会有一定程度的主观性。但是在你描述的情况下,这听起来相当明确。

然而,像Joshua Bloch这样的Java专家认为,当方法的契约被破坏时,应该使用RuntimeException(例如IllegalArgumentException)。因此,如果您确实需要创建一种新类型Exception来处理方法的错误输入,那么它应该扩展RuntimeException。这里的想法是程序员没有遵守方法的契约,所以没有必要期待他抓住他创造的例外。