Java传播异常

Java传播异常,java,Java,与在同一个类/方法中捕获异常相比,您什么时候希望将异常传播到另一个类/方法?您在必须处理异常的地方捕获异常 根据经验,您应该允许异常冒泡出现,但如果您不希望您的子例程因(可能预期的)错误而崩溃,则应处理异常,这通常涉及记录错误和/或向用户显示错误消息 好的做法是“早丢晚抓”。这使您能够更好地理解异常的原因。这个主题相当广泛;幸运的是,已经有了很好的资源: 现实代码中发生的绝大多数异常都是不可恢复的,因为有任何有意义的代码会重试该操作或尝试以不同的方式执行该操作。唯一发生的恢复是以有序的方式中

与在同一个类/方法中捕获异常相比,您什么时候希望将异常传播到另一个类/方法?

您在必须处理异常的地方捕获异常


根据经验,您应该允许异常冒泡出现,但如果您不希望您的子例程因(可能预期的)错误而崩溃,则应处理异常,这通常涉及记录错误和/或向用户显示错误消息

好的做法是“早丢晚抓”。这使您能够更好地理解异常的原因。

这个主题相当广泛;幸运的是,已经有了很好的资源:


现实代码中发生的绝大多数异常都是不可恢复的,因为有任何有意义的代码会重试该操作或尝试以不同的方式执行该操作。唯一发生的恢复是以有序的方式中止当前工作单元,记录异常,释放任何资源和类似资源

这意味着,作为第一条规则,您将始终希望将异常传播到划分工作单元的定义良好的异常屏障


如果您的代码需要与此不同的内容,这可能是显而易见的,因此您无需在一般情况下考虑它。

答案很清楚-当您不知道如何在当前上下文中处理此异常时。我想我理解。只有在必要时才处理异常。否则,如果可以的话,把它扔掉。我假设这是因为通过堆栈回溯到错误点或类似的原因。