如果将运行时异常作为已检查的异常重新抛出,客户端可以明智地预测并处理该情况。
在我看来,这是检查异常的目的,当然,因为这些可预测和可处理的场景可能会在运行时异常以及检查过的异常中发生 - 将它们视为同样没有意义。
是否应该通过在throws子句中列出运行时异常来做到这一点 - 希望?在这方面重新抛出它作为用户定义的已检查异常是否有帮助(通过强制编译器客户端来处理它)?
修改
(例如,当读取可能提供的文件时,可能会遇到NumberFormatException)
答案 0 :(得分:1)
RuntimeException
s基本上是逻辑错误。并且应该在代码中纠正逻辑错误,而不是将它们放在代码库中。
Exception
是很少发生的场景,但是什么时候发生,程序流程发生了巨大的变化。
您可以将RuntimeException包装到已检查的异常中,但建议使用 NOT 。您的方法中的逻辑错误不应该在您的方法之外处理,如果您将方法用作其他开发人员的API,则会更糟糕。
要再添加一个点,如果您正在开发framework
,那么抛出RuntimeException
似乎合乎逻辑,以便开发人员可以通过更正代码来处理它,但是如果您正在开发library
,远离那样做。
要了解框架和库之间的区别,请参阅:What is the difference between a framework and a library?