链式异常有什么优点

2024-03-01

我不明白在代码中使用链式异常有什么好处。

考虑到Java 世界中的 ResourceLoader 示例 http://www.javaworld.com/javaworld/jw-09-2001/jw-0914-exceptions.html,如果程序员知道遇到的可能性ResourceLoadException,为什么不捕获相同的异常而不是SQLException?否则,程序员可以在同一代码中捕获这两个异常,而不必抛出新的异常Throwable实例?


任何人都可以提供有关链式异常需求的信息吗?

文章说得很好:

异常链允许您将一种异常类型映射到另一种异常类型,以便方法可以抛出与方法本身相同的抽象级别定义的异常,而不会丢弃重要的调试信息。

也就是说,如果您有一个从数据库加载某些对象的方法,您可能更想要一些ResourceLoadException(与方法抽象级别更密切相关)而不是低级别SQLException即使这是问题的根源。然而,如果你只是抓住SQLException并抛出一个ResourceLoadException相反,您可能会丢失重要的调试信息。

因此,链接异常是一个不错的选择。您抛出一个非常适合特定方法的“高级”异常,但将其与引起它的异常链接起来。

否则,程序员可以在同一代码中捕获这两个异常,而不是必须抛出一个新的 Throwable 实例吗?

我不太明白你在这里的推理。关键是他不需要担心SQLException在这个抽象层次上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

链式异常有什么优点 的相关文章

随机推荐

  • 推荐工作流应用程序的设计模式[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在开发一个应用程序 用户可以在其中执行任务 工作流程 每个任务都由要执行的操作队列组成 我希望能够在工作流程启动后获得用户输入 Exampl
  • 使用jsoup登录网站

    On 这个网站 http kortladdning3 chalmerskonferens se 你可以输入你的学生卡号 然后就会显示该卡上还剩多少钱 我想使用JSOUP获取信息 这是我当前的代码 但它不起作用 String url http
  • ASP.NET MVC 2 中的 httppost、httpput 等属性如何工作?

    在 ASP NET MVC 2 中 引入了一些新的操作筛选器属性 作为 ASP NET MVC 1 中属性的 简写 例如 应用HttpPostAttribute与申请做同样的事情 AcceptVerbs HttpVerbs Post 到一个
  • 如何使用正则表达式按空格分割字符串并忽略前导和尾随空格到单词数组中?

    我通常在 JavaScript 中使用以下代码来按空格分割字符串 The quick brown fox jumps over the lazy dog split s The quick brown fox jumps over the
  • AWS Rekognition 检测标签无效图像编码错误

    我正在使用 boto3 调用识别的检测标签方法 该方法将图像 以 Base64 编码字节的形式 作为输入 但是我不断收到 InvalidImageFormatException 并且我不明白为什么 我已阅读文档并查看了一些示例 但我真的不明
  • Intellij 打开文件资源(忽略目标文件夹)

    当我使用 command shift o 命令时 我会收到以下弹出窗口 问题是在 Java EE 应用程序中将会出现目标中的重复项文件夹 有时我开始编辑错误的文件 我不想列出它们 请参阅图片 有没有办法排除文件夹 另外 还有一点 有时 in
  • 如何使用 Python 的 timeit 对代码段进行计时以测试性能?

    我有一个 python 脚本 它可以正常工作 但我需要编写执行时间 我已经用谷歌搜索过我应该使用timeit https docs python org 2 library timeit html但我似乎无法让它发挥作用 我的 Python
  • `a

    我很好奇我是否可以使用这个a
  • Java中修饰符关键字顺序

    每次我用Java编写一个方法时 关键字的数量都多于public void 每次我都会用另一种方式写 有时 static public void 有时 public static void etc 这些关键字的最佳顺序 最佳实践 是什么 ab
  • 创建错误消息 Delphi 7

    好的 我目前是一名 11 年级的学生 正在学习 IT 我正在尝试完成一项实际作业 但遇到了一些问题 我使用的教科书没有告诉我如何在用户未在 RichEdit 中输入数据时创建错误消息 谁能建议我如何做到这一点 感谢您抽出时间提供帮助 这是引
  • UISlider 在停止更改值后评估结果

    我有一个连续的 UI 滑块 我在值发生变化时获取该值 并使用它来计算放入文本字 段的值 我将值更改出口链接到执行计算并且工作正常的方法 但我还想要一种在用户抬起滑块后触发的方法 该方法有效地对最终设置值进行一次评估 我尝试连接 did en
  • 如何修复 DefaultKotlinSourceSetKt 的初始化错误?

    通过项目构建 或简单的 Gradle 同步 我遇到以下错误 导致 java lang NoClassDefFoundError 无法初始化类 org jetbrains kotlin gradle plugin sources Defaul
  • Roslyn .rsp 文件中的引用

    我在 CSharpInteractive rsp 中看到您可以使用 r 添加对 GAC 中 DLL 的引用 如何添加对自己的 DLL 的引用 我尝试了System Reflection Assembly LoadFrom 它没有失败 但不起
  • linq to sql ExecuteQuery() 作为 IQueryable

    ExecuteQuery 方法返回 IEnumerable 但有没有办法让它返回 IQueryable 嗯 你可以打电话AsQueryable 但它不会有任何好处 问题是当你使用ExecuteQuery 查询不是可组合的因为 LINQ to
  • 如何通过 Scala 反射访问默认参数值?

    假设我有一堂课 case class Foo id Int name String note Option String None 自动生成的伴生对象中的构造函数和 apply 方法都采用三个参数 通过反射查看时 第三个参数 注 被标记 p
  • Morgan (node.js):使用自定义格式时着色状态代码(如“dev”中)

    我正在使用 Morgan 登录 Node js 我喜欢预定义格式模式 dev 中提供的状态代码着色 但我使用的是自定义格式 如何获得与 开发 模式相同的颜色 根据摩根文档 开发格式如下 method url status response
  • 在 SQLite 中获取数字的 ceil 值

    所以我明白了这个问题 https stackoverflow com questions 7129249 getting the floor value of a number in sqlite有一个很好的答案 但无论如何我都想向上舍入
  • 活动 android 中的自动增量

    我尝试使用active android 我对如何在表中实现自动增量字段有疑问 在他们的文档中 他们提供了这样的代码 Item item new Item item remoteId 1 item category restaurants i
  • SQL VIEW 应该始终处于 1NF 中吗?

    SQL VIEW 是一个全局逻辑表 可能会也可能不会持久化 但它仍然是一张桌子 因此 VIEW 是否应该始终遵循第一范式 1NF 即没有重复的行 只有标量类型 没有从上到下或从左到右的排序等 那么更高的范式呢 对我来说 我的应用程序 消耗
  • 链式异常有什么优点

    我不明白在代码中使用链式异常有什么好处 考虑到Java 世界中的 ResourceLoader 示例 http www javaworld com javaworld jw 09 2001 jw 0914 exceptions html 如