gpt4 book ai didi

spring - 为什么 spring 更喜欢未经检查的异常?

转载 作者:行者123 更新时间:2023-12-03 23:15:00 24 4
gpt4 key购买 nike

在学习 spring 时,我偶然发现了这个问题。 Java 支持受检异常和非受检异常。与语言无关的设计指南似乎偏爱未经检查的异常。这个问题就是为什么使用像 Spring 这样的控制容器的反转意味着我应该只使用未经检查的异常。

最佳答案

“为什么使用像 Spring 这样的控制容器的反转意味着我应该只使用未经检查的异常”这个问题有点奇怪。而且我不确定使用 IoC 是否意味着您应该使用未经检查的异常。检查与未检查最终取决于上下文和意见。

我对此的看法:

异常可以分为受检异常和非受检异常。这只是意味着某些异常,即已检查的异常,要求我们在编译时指定应用程序在发生异常时的行为方式。未经检查的异常不要求我们进行编译时处理。要创建此类异常,您可以扩展 RuntimeException 类,它是 Exception 的直接子类。关于受检与非受检的一个古老而普遍的准则是,运行时异常用于表示应用程序通常无法预测或恢复的情况,而受检异常是编写良好的应用程序应该预测和恢复的情况。

我提倡只使用运行时异常。如果我使用的库有一个带有已检查异常的方法,我会创建一个包装方法,将其转换为运行时。那为什么不检查异常呢?鲍勃叔叔在他的“清洁代码”一书中争辩说他们违反了开放/封闭原则,因为使用新的 throws 声明更改签名可能会对调用该方法的程序的许多级别产生影响。

我写过一篇关于处理异常的帖子,有兴趣的可以看看:https://dzone.com/articles/how-to-deal-with-exceptions

关于spring - 为什么 spring 更喜欢未经检查的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52983402/

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