gpt4 book ai didi

java - 围绕 RuntimeException 或 Error 设计应用程序异常层次结构是否更好?

转载 作者:行者123 更新时间:2023-12-01 07:15:43 25 4
gpt4 key购买 nike

Possible Duplicate:
Unchecked exceptions in Java: Inherit from Error or RuntimeException?

看看我们的应用程序如何进行错误处理,我们一直在稳步从受检查的 ExceptionHierarchy(例如 Exception -> ApplicationException -> SomethingSpecificBadHappenedException)开始,因为在许多情况下,我们有许多长调用链只是传递 ApplicationException,并且它添加了没什么值(value),但让我们的 API 变得困惑(我们越来越同意 Effective Exceptions 中表达的观点。

在重新设计围绕未检查异常的错误处理时,与“故障屏障”方法保持一致,我们最初开始使用基于 RuntimeException 的层次结构,类似于 Spring Data Access layer 中的示例。

我们开始想知道让它们从 Error 继承下来是否会更清楚,特别是它会让我们做类似的事情:

} catch (Exception e) {

在我们的应用程序中的许多地方,但随后区分:

} catch (Throwable t) {} catch (Error err) {

这感觉更干净,尽管我想不出遵循此的 API 的主要示例。我正在从最好的通用 API 中寻找示例,说明我们的异常/错误层次结构的根位置,或者对风格或功能差异的注释,这些差异应规定一个根优先于另一个根。

最佳答案

规则是,不要创建源自 Error 的应用程序异常。 Error 层次结构仅用于 JVM 和核心库报告的不可恢复的错误。

据我所知,没有任何主要 API 违反了此规则。

关于java - 围绕 RuntimeException 或 Error 设计应用程序异常层次结构是否更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3278316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com