我正在进行代码审查,我遇到了这个方法定义:
public void something() throws RuntimeException
是否有合理的理由写出'抛出RuntimeException'在Java?
答案 0 :(得分:8)
RuntimeException
是未经检查的异常,因此可以从代码中的任何位置抛出。说“嘿,这个方法可以抛出RuntimeException
”并且知道任何一段代码都可以这样做可能是多余的。我能想到的唯一原因,你想明确的是出于文档目的,例如。 “当某些特定事情发生时,抛出RuntimeException
”,但它可能属于javadoc,而不属于方法签名。
答案 1 :(得分:4)
一切都依赖于上下文,你没有共享;但总的来说,可以说这很少有道理。方法声明未经检查的异常以用于文档目的,但这些通常是具有某些特定于域的含义的特定异常。因此,声称抛出一个完全通用的未经检查的异常是很难证明的,尽管我不能说绝对没有可能有意义的情况。
答案 2 :(得分:0)
这种类型的异常直接依赖于代码,例如" ArrayIndexOutOfBoundsException"。所以,如果你不使用数组,arraylists,cast或什么可能抛出RuntimeException,它就不会&# 39;这是必要的。
答案 3 :(得分:0)
运行时异常表示编程问题导致的问题,因此,无法合理地期望API客户端代码从它们恢复或以任何方式处理它们。这些问题包括算术异常,例如除以零;指针异常,例如尝试通过空引用访问对象;和索引异常,例如尝试通过索引太大或太小来访问数组元素。
答案 4 :(得分:0)
任何方法都可以抛出RuntimeException,就像NullPointerException最常见。因此,如果一个方法抛出RuntimeException(或它的子类),通常不会将它放在方法签名中。
所以根据我的说法,它只是表明程序员不成熟,因为它没有增加任何价值。 虽然,它没有被问到,但即使是方法名称,即某些东西()也是可疑的。它没有向读者传达任何意义。