可能重复:
In Java, when should I create a checked exception, and when should it be a runtime exception?
我应该何时从RuntimeException
而不是Exception
派生例外?
RuntimeException
不必在方法的throws
子句中声明,该子句可能 good ,因为它不必特别列出或 坏 ,因为明确声明方法的异常是一种好习惯。
思考?
答案 0 :(得分:51)
来自Unchecked Exceptions -- The Controversy:
如果可以合理地预期客户 从异常中恢复,成功 检查的例外。如果是客户 无法从中恢复过来 例外,让它不受控制 异常。
请注意,未经检查的异常是从RuntimeException
派生的异常,而已检查的异常是从Exception
派生的异常。
如果客户端无法执行任何操作以从异常中恢复,为什么抛出RuntimeException
?文章解释说:
运行时异常代表问题 这是编程的结果 问题,以及API客户端 代码不能合理地预期 从中恢复或处理它们 无论如何。这些问题包括 算术异常,例如 除以零;指针异常, 例如尝试访问对象 通过空引用;和索引 异常,例如尝试 通过一个访问数组元素 索引太大或太小。
答案 1 :(得分:11)
在企业应用程序开发中有许多场景,您可以使用RuntimeException而不是Exception。以下是两种非常常见的场景:
这些是我立即想到的两个重要场景,但当然会有其他场景。