java - 创建库时捕获并包装运行时异常?

标签 java exception client-library

我正在为我们的一系列 API 编写一个客户端库,以供第三方库使用。

我们使用的底层 http 客户端仅抛出 RuntimeExceptions。我不想让这些异常冒出来,而是将它们包装在我们自己的 ClientException 中。

但是我读到的所有内容似乎都表明捕获运行时异常确实是不好的做法?

在编写供第三方使用的库时,这是规则的异常(exception)吗?

最佳答案

捕获未经检查的异常没有任何问题,尤其是为了包装和重新抛出。

不捕获未检查异常的建议唯一适用的情况是编写类似的内容

try { ... }
catch (RuntimeException e) { ... do some handling and move on ... }

因为这将阻止任何 NullPointerExceptionIllegalArgumentException 等破坏执行流程。这些异常都太通用,无法自动恢复(由于太多不同的原因,可能出现在太多地方),并且通常指示编程错误,如果代码不这样做,则更难以查明。不要破坏他们。

关于java - 创建库时捕获并包装运行时异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21602821/

相关文章:

Java(JAXP) 和 XSLT : Overwriting the XML file

java - 数据库中的用户名未显示在网页中?

iOS 10 Xcode 8 - 迁移到 Swift 3 和 Date

jquery - 当未找到元素时,是否可以让 jQuery 抛出异常?

javascript - 适用于 JavaScript 的 Google API 客户端库 - 方法调用时出现 404

java - 当我打开相机时应用程序崩溃

java - 无法为 hibernate 项目创建请求的服务 [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

Python:请求模块使用 Gevent 抛出异常

delphi - 无法在 Windows 10 上加载 Firebird 客户端库

Ruby 中的 Java 兼容 REST 客户端