当您为某些通用用途实现类时,为什么最好不要捕获异常?
我想这是为了让错误可以进入堆栈并帮助调试过程。还有其他原因吗?
最佳答案
这条规则应该更好地阅读:不要处理你不知道如何处理的异常!
如果例如您编写了一个读取 CSV 文件并返回该行标记的类,您的类中会有一些点可能会抛出 IOException。你绝对不应该捕获它,因为处理它不是你的责任!您的任务是将字节流转换为标记流,仅此而已。如果有人将损坏的流传递给您,这应该由他来处理,而不是您。
编辑:另一个示例:例如,如果您的库遇到 SocketException,并且套接字已从调用方提供给库,则向上传递 SocketException。如果您的库只是一个抽象连接框架,它还可以连接到文件、内存等,并且 SocketExceptions 不常见,请将它们包装在 ConnectionException 中。
关于java - 为什么最好不要在通用类中捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5284699/