我知道如果我们希望它由调用方法处理,我们可以为我们的方法声明异常。如果封闭方法抛出 IOException,这甚至允许我们执行诸如写入 OutputStream 之类的操作,而无需将代码包装在 try/catch block 中。
我的问题是:任何人都可以提供一个实例,其中通常是在您希望调用方法而不是当前方法处理异常的地方完成的吗?
编辑:我的意思是在最后一行调用方法而不是父类(super class)。
最佳答案
一般来说,我会说设计你的异常流,以便异常被可以实际采取适当行动的代码捕获。
这通常意味着在“库”方法(或大型项目中的某种通用实用方法)中,您将抛出异常而不捕获它们。
另一方面,如果您发现自己声明的方法抛出您认为在实践中几乎不会发生的异常(例如,序列化通常涉及各种虚假的检查异常,而实际上这些异常不会发生)发生,例如,如果你正在反序列化一个 Integer,Integer 类不存在的可能性很小,但你仍然必须捕获适当的异常),那么你有第三种选择,即重新转换为 RuntimeException。
关于java - 您什么时候更愿意声明异常而不是在 Java 中处理异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2828283/