何时使用 "throws RuntimeException" Java
When to use "throws RuntimeException" Java
我正在进行代码审查,我遇到了这个方法定义:
public void something() throws RuntimeException
在Java中写'throws RuntimeException'是否有合理的理由?
一切都取决于上下文,您分享了其中的内容none;但总的来说,可以说这很少有意义。出于文档目的,方法声明未经检查的异常,但这些通常是具有特定领域含义的特定异常。因此,声明抛出一个完全通用的未经检查的异常是很难证明的,尽管我不能说绝对没有任何情况是有意义的。
这种类型的异常直接取决于代码,例如,"ArrayIndexOutOfBoundsException"。因此,如果您不使用数组、数组列表、强制转换或其他可能抛出 RuntimeException 的东西,就没有必要了写那个。
运行时异常表示由编程问题引起的问题,因此,不能合理地期望 API 客户端代码从它们中恢复或以任何方式处理它们。此类问题包括算术异常,例如除以零;指针异常,例如试图通过空引用访问对象;和索引异常,例如试图通过太大或太小的索引访问数组元素。
RuntimeException
是未经检查的异常,因此可以从代码中的任何位置抛出。说 "Hey, this method can throw RuntimeException
" 并知道任何一段代码都可以这样做可能是多余的。我能想到的唯一原因是,您想明确说明是出于文档目的,例如。 "Throws RuntimeException
when some specific thing happens",但它可能属于 javadoc,而不属于方法签名。
任何方法都可能抛出 RuntimeException,例如最常见的 NullPointerException。因此,如果一个方法抛出 RuntimeException(或其子类),通常不会将其放入方法签名中。
所以在我看来,它只是显示了程序员的不成熟,因为它没有增加任何价值。 尽管没有被问到,但即使是方法名称,即 something() 也是可疑的。它没有向 reader.
传达任何意义
我正在进行代码审查,我遇到了这个方法定义:
public void something() throws RuntimeException
在Java中写'throws RuntimeException'是否有合理的理由?
一切都取决于上下文,您分享了其中的内容none;但总的来说,可以说这很少有意义。出于文档目的,方法声明未经检查的异常,但这些通常是具有特定领域含义的特定异常。因此,声明抛出一个完全通用的未经检查的异常是很难证明的,尽管我不能说绝对没有任何情况是有意义的。
这种类型的异常直接取决于代码,例如,"ArrayIndexOutOfBoundsException"。因此,如果您不使用数组、数组列表、强制转换或其他可能抛出 RuntimeException 的东西,就没有必要了写那个。
运行时异常表示由编程问题引起的问题,因此,不能合理地期望 API 客户端代码从它们中恢复或以任何方式处理它们。此类问题包括算术异常,例如除以零;指针异常,例如试图通过空引用访问对象;和索引异常,例如试图通过太大或太小的索引访问数组元素。
RuntimeException
是未经检查的异常,因此可以从代码中的任何位置抛出。说 "Hey, this method can throw RuntimeException
" 并知道任何一段代码都可以这样做可能是多余的。我能想到的唯一原因是,您想明确说明是出于文档目的,例如。 "Throws RuntimeException
when some specific thing happens",但它可能属于 javadoc,而不属于方法签名。
任何方法都可能抛出 RuntimeException,例如最常见的 NullPointerException。因此,如果一个方法抛出 RuntimeException(或其子类),通常不会将其放入方法签名中。
所以在我看来,它只是显示了程序员的不成熟,因为它没有增加任何价值。 尽管没有被问到,但即使是方法名称,即 something() 也是可疑的。它没有向 reader.
传达任何意义