Java 中的异常翻译与异常链接

2023-12-24

有什么区别Exception Translation and Exception Chaining在Java中?


根据约书亚·布洛赫 in 有效的Java -

异常翻译
较高层应捕获较低级别的异常 并在其位置抛出可以用以下方式解释的异常 更高层次的抽象。

try {
    // Use lower-level abstraction to do our bidding
    ...
} catch(LowerLevelException e) {
    throw new HigherLevelException(...);
}

异常链接
它是异常翻译的特殊形式。 如果较低级别的异常可能对某人调试有帮助 导致更高级别异常的问题。较低级别的异常(原因)被传递给较高级别的异常,后者提供了一个 访问器方法 (Throwable.getCause) 来检索较低级别的异常:

try {
    ... // Use lower-level abstraction to do our bidding
} catch (LowerLevelException cause) {
    throw new HigherLevelException(cause);
}

更高级别异常的构造函数将原因传递给链感知 超类构造函数,因此它最终传递给 Throwable 的链式构造函数之一,例如 Throwable(Throwable):

// Exception with chaining-aware constructor
class HigherLevelException extends Exception {
    HigherLevelException(Throwable cause) {
        super(cause);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中的异常翻译与异常链接 的相关文章

随机推荐

  • jQuery 自动完成“响应”事件

    我正在使用 jQuery UI 自动完成 如 http api jqueryui com autocomplete 所述 我需要在执行搜索之前和之后做一些事情 通过阅读上述 URL 上的文档 它描述了两种方法 搜索 和 响应 这两种方法在查
  • 如何使用 SAP Cloud SDK 在 Java 客户端内调用绑定函数/操作?

    我对 SAP Cloud SDK 有疑问 首先 我需要说 这是一个非常好的使用 OData 服务的库 我只是想指出您做得很好 关于生成 VDM 和其他内容的教程简直太棒了 进入问题 如何从客户端调用绑定函数或操作 我搜索 观看了视频 唯一发
  • 安装 Perl 模块时出现“致命错误:找不到‘EXTERN.h’文件”

    在尝试安装 JSON XS 或 YAML XS 等 Perl 模块时 我收到相同的错误 XS xs 1 10 致命错误 找不到 EXTERN h 文件 我使用 MacBook xCode 是最新的 其他所有有帮助的东西也是最新的 自 OS
  • Office 365 与桌面 Excel 宏

    抱歉 如果标题非常模糊 我已经尝试解决这个问题有一段时间了 但我不得不说 我对 Office 365 及其相关知识知之甚少 我在 Excel 2010 中开发了一系列宏 其中包括数据输入和子流程自动化 但最近我们被告知 我们将更明确地转向
  • 为什么打字稿允许我导入它在运行时无法使用的依赖项?

    您可以在这里查看我的示例项目 https github com DanKaplanSES typescript stub examples tree JavaScript import invalid https github com Da
  • 如何使用 PHP 进行单点登录? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 例如 使用单个 Google 帐户登录 Gmail Orkut Wava 和 feedburner 你的问题太不具体 无法给出准确的答
  • PHP 中检测整数?

    如何判断 PHP 中的浮点数是否为整数 is round 1 5 false is round 1 0 true is round 1 00000001 false 根据 sterofrog 的评论修改 Rob 的代码 代码检查以确保该值也
  • 如何使用 apache-commons net 中生成的证书配置客户端身份验证

    首先 我知道有一个类似的问题here https stackoverflow com questions 13471015 how to configure client authentication with apache commons
  • Bash 可以配置为在当前输入行上搜索字符串吗?

    用于在使用命令行时快速定位位置 是的 我是 Emacs 粉丝 看了Bash的man后 我找不到这样的提示 是否需要修改readline的源代码来支持这一点 非常感谢 我不知道有什么方法可以直接在命令行中执行此操作 但 bash 确实支持按键
  • 当 Javascript 更改值时,不检查 HTML 输入有效性

    我有一个文本输入minlength定义的 当用户输入文本时 输入的validity状态立即更新 如果我更改代码中的值 有效性状态将重置为显示为有效 即使违反了约束 validity valid是真的 const input document
  • 如何使用 selenium 和单个 NUnit 套件测试多个浏览器并保持干燥?

    我正在寻找一种方法来重用一个 NUnit 测试套件 而无需为每个浏览器复制整个套件 看来我需要为每个浏览器一个新的固定装置 我可以从 NUnit gui 发送某种环境变量或配置设置来切换浏览器吗 见下文 TestFixture public
  • 强制 Eclipse 忽略字符编码属性

    我正在使用一个 Web 框架 该框架在其 html 模板中使用动态字符编码 如下所示 问题是当我尝试在 Eclipse 中编辑这个文件时 Eclipse 认为这是一种文字编码类型 因此拒绝打开该文件 并说 不支持的字符编码 字符编码 此平台
  • 为什么 ELF header 与文本段一起加载到内存中?

    我编译了这个程序 m32 nostdlib进入 ELF 可执行文件 void start 当我这样做的时候readelf l我很惊讶地发现 LOAD 段上的偏移量是 0x000000 因为这意味着可执行标头将与文本段同时加载到内存中 于是我
  • 如何在 Angular 中获取 DOM 节点属性

    我在用这个答案 https stackoverflow com a 35385518 10684507将 HTML 字符串转换为 Angular 中的 DOM 元素 问题是我无法获取属性Node getAttribute 无法使用 因为打字
  • 根据出生日期计算年龄(jQuery 或 PHP)[不基于用户输入]

    我正在寻找一个 JavaScript 或 PHP 脚本 可以让我根据某人的出生日期来计算他 她的年龄mm dd yyyy格式 我发现这个非常有用的链接 在 JavaScript 中计算年龄 https stackoverflow com q
  • swagger codegen 正在覆盖生成文件中的自定义代码

    我使用 swagger codegen 生成 jaxrs 服务器端类和客户端 java 类 这是我用来生成类的命令 java jar modules swagger codegen distribution target swagger c
  • 如何使用 Google 托管的 jQuery UI 源?

    我需要加载 jQuery UI 文件 并且想从 Google 执行此操作 目前我上传 我需要从 Google 获取哪些相应文件 我可以用吗http ajax
  • 检测 NSDictionary 中的 Null 值

    我有一个NSDictionary它是由 API 服务器的 JSON 响应填充的 有时该字典中键的值是Null 我试图获取给定的值并将其放入表格单元格的详细文本中进行显示 问题是 当我尝试将值强制转换为NSString我发生了车祸 我thin
  • R中有没有办法告诉某个纬度/经度坐标属于哪个大陆?

    我正在使用maps在 R 中打包 并希望在每个大陆上制作一个文本标签 说明我正在绘制的点有多少个在每个大陆上 虽然我可以制作粗略的方框来勾勒出每个大陆的轮廓 但它们并不那么准确 例如 有时包括欧洲 非洲的部分地区等 R 中是否有一些功能可以
  • Java 中的异常翻译与异常链接

    有什么区别Exception Translation and Exception Chaining在Java中 根据约书亚 布洛赫 in 有效的Java 异常翻译较高层应捕获较低级别的异常 并在其位置抛出可以用以下方式解释的异常 更高层次的