栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么Spring只处理未经检查的异常

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么Spring只处理未经检查的异常

Spring使用的任何设计模式都可以避免检查异常?

不是设计模式,而是 异常处理的最佳实践

考虑下面的代码:

public void consumeAndForgetAllExceptions(){    try {        ...some pre that throws exceptions    } catch (Exception ex){        ex.printStacktrace();    }}

上面的代码有什么问题?

引发异常后,将暂停正常程序执行,并将控制权转移到catch块。catch块捕获异常并抑制它。在catch块之后继续执行程序,好像什么也没发生。

接下来呢?

public void someMethod() throws Exception{}

这种方法是空白的。它没有任何代码。 空白方法如何引发异常? Java不会阻止您这样做。

我想知道为什么spring只处理未检查的异常?

我个人更喜欢在throws原因中声明的未经检查的异常。当我对异常不感兴趣时​​,我讨厌不得不捕捉它们。我同意规范需要更多的异常类型,但是我不同意应检查它们。大多数框架都依赖于未经检查的异常,而不仅仅是Spring框架。

设计API的最佳做法

  • 如果客户端可以采取其他措施从异常中恢复,请使其成为 选中的异常
  • 如果客户端无法做任何有用的事情,请 取消选中异常 。有用的意思是,我要采取措施从异常中恢复,而不仅仅是记录异常。

Java的API有许多未检查异常,如

NullPointerException
IllegalArgumentException
IllegalStateException
。我更喜欢使用Java提供的标准异常,而不是创建自己的标准异常。它们使我的代码易于理解,并避免增加代码的内存占用量。

也可以看看:

  • 未经检查的异常
  • 异常处理的最佳实践


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428400.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号