java - 为什么最好不要在通用类中捕获异常?

标签 java exception-handling

当您为某些通用用途实现类时,为什么最好不要捕获异常?

我想这是为了让错误可以进入堆栈并帮助调试过程。还有其他原因吗?

最佳答案

这条规则应该更好地阅读:不要处理你不知道如何处理的异常!

如果例如您编写了一个读取 CSV 文件并返回该行标记的类,您的类中会有一些点可能会抛出 IOException。你绝对不应该捕获它,因为处理它不是你的责任!您的任务是将字节流转换为标记流,仅此而已。如果有人将损坏的流传递给您,这应该由他来处理,而不是您。

编辑:另一个示例:例如,如果您的库遇到 SocketException,并且套接字已从调用方提供给库,则向上传递 SocketException。如果您的库只是一个抽象连接框架,它还可以连接到文件、内存等,并且 SocketExceptions 不常见,请将它们包装在 ConnectionException 中。

关于java - 为什么最好不要在通用类中捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5284699/

相关文章:

Java,从单独的 JSON 值到字符串的日期

php - 既然所有错误都是异常,PHP7 上的 set_error_handler() 会发生什么?

c# - TimeoutException、TaskCanceledException C#

java - 抛出和捕获异常

java - 对象 ArrayList 反序列化后丢失 String 值?

java - Spring boot 的 MongoDB 配置 - AbstractMongoConfiguration

java - 向 Okta UserProfile 添加属性 - Java API 版本 0.0.4

java - 将 SWT 作为 Gradle 依赖项导入

c# - VS2010 不会在 64 位版本的 Windows 上的 WinForms 应用程序中显示未处理的异常消息

android - 异常无效限制条款 - Android