java - 您什么时候更愿意声明异常而不是在 Java 中处理异常?

标签 java exception try-catch throws

我知道如果我们希望它由调用方法处理,我们可以为我们的方法声明异常。如果封闭方法抛出 IOException,这甚至允许我们执行诸如写入 OutputStream 之类的操作,而无需将代码包装在 try/catch block 中。

我的问题是:任何人都可以提供一个实例,其中通常是在您希望调用方法而不是当前方法处理异常的地方完成的吗?

编辑:我的意思是在最后一行调用方法而不是父类(super class)。

最佳答案

一般来说,我会说设计你的异常流,以便异常被可以实际采取适当行动的代码捕获

这通常意味着在“库”方法(或大型项目中的某种通用实用方法)中,您将抛出异常而不捕获它们。

另一方面,如果您发现自己声明的方法抛出您认为在实践中几乎不会发生的异常(例如,序列化通常涉及各种虚假的检查异常,而实际上这些异常不会发生)发生,例如,如果你正在反序列化一个 Integer,Integer 类不存在的可能性很小,但你仍然必须捕获适当的异常),那么你有第三种选择,即重新转换为 RuntimeException。

关于java - 您什么时候更愿意声明异常而不是在 Java 中处理异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2828283/

相关文章:

java - 自定义异常消息

java - 无法从java中的流中读取

java - 继续出现此错误;线程中出现异常 "main"java.lang.NullPointerException

java - 如何让父方法抛出异常?

ruby-on-rails - 开发模式下的异常页面需要 15-30 秒以上的时间来呈现,这是为什么?

flutter - `on`子句未捕获引发的异常(类型似乎错误)

java - 为什么无法将 editView 内容传递给方法?

java - JUnit 可以使用的堆大小是否有上限

r - 如何在 R 中编写 trycatch

powershell - 尝试 Catch 在 Powershell 脚本中不起作用