在大多数情况下,可以在 Java 中捕获异常,甚至是未经检查的异常。但是,不一定可以对此做些什么(例如内存不足)。
对于其他情况,我试图解决的问题是设计原则问题。我正在尝试建立一个设计原则或一组规则,指示何时应该放弃异常情况,即使及时发现也是如此。目标是尽量不让应用程序崩溃。
是否有人已经对此进行了头脑风暴并进行了沟通?我正在寻找特定的通用案例和可能的解决方案,或拇指规则。
更新
到目前为止的建议:
- 如果数据一致性可能受到损害,请停止运行
- 如果可以删除数据,则停止运行
- 如果您对此无能为力,请停止运行(内存不足...)
如果关键服务不可用或变得不可用且无法重新启动,则停止运行
方法/服务应该检查它是否可以从稳定状态执行其职责,如果不能,它应该通知用户(日志)并且什么都不做
- 如果必须停止应用程序,请尽可能优雅地降级
- 在数据库事务中使用回滚
- 自定义异常可用于提供有关如何通过处理程序解决情况的提示
- 尽可能多地记录相关信息
- 通知开发商
尽可能保持状态和数据的一致性
快速修复可能是有害的,在调试时,最好让应用程序崩溃并详细分析导致它的原因