我最近学会了在java中抛出异常。
我正在进行一项练习来编写一个方法,该方法将一个整数(介于1和100之间)作为参数,并将其存储在实例变量中。如果整数不在指定范围内,则会通过异常报告错误。
在多次搜索要使用的异常类之后,我相信IllegalArgumentException在这种情况下最合适。
但是,如此大量的异常类,是否有建议的方法来确定使用哪个异常类?
我即将参加考试,可能会提出这类问题。我能够引入一本教科书作为参考资料,但时间有限,我当然无法/有时间通过所有可用的异常课程。
是否有更常用的异常类,我应该首先引用它?
答案 0 :(得分:1)
我同意你的评估:IllegalArgumentException
非常合适。 Java API specification for this说:
抛出表示某个方法已被传递为非法或 不恰当的论点。
这正是您描述的情景。
至于方法论,没有硬标准,因为在决定如何在不寻常的情况下解释定义时,总会有一定程度的主观性。但是在你描述的情况下,这听起来相当明确。
然而,像Joshua Bloch这样的Java专家认为,当方法的契约被破坏时,应该使用RuntimeException
(例如IllegalArgumentException
)。因此,如果您确实需要创建一种新类型Exception
来处理方法的错误输入,那么它应该扩展RuntimeException
。这里的想法是程序员没有遵守方法的契约,所以没有必要期待他抓住他创造的例外。