我正在构建我的第一个Java库。代码使用了大量的IO方法,因此您可以想象有很多异常需要捕获。但我想知道,我应该抛出异常吗?我的意思是应用程序作者的工作肯定是抓住异常。因为即使我抓住它们,我也不知道在发生这种情况时应用程序想要做什么。
我应该抛出IOExceptions等,还是应该在库代码中捕获它们?
答案 0 :(得分:2)
只有在您的情况下才应处理异常 - 即,您的图书馆对如何处理异常有足够的了解。
以下是应处理异常时的示例:
以下是不应处理异常的示例
如果要向用户抛出异常,通常很好的做法是捕获并重新抛出异常 - 这使您可以将它包装在您自己的自定义异常类中并且可能添加额外的消息/细节等。
一般情况下,如果你想编写一个好的软件组件,它应该有fail-fast behaviour。如果有疑问,你应该失败并让用户知道(通过例外),而不是试图继续在不健全的基础上。
答案 1 :(得分:0)
是的,这是一种常见做法。但是请确保尽可能多地抛出特定方法在运行时可能发生的所有异常异常。除此之外,根据Effective Java - Second Edition第62项 - “记录每种方法抛出的所有异常”。您可能永远不知道何时可以重复使用或包含您在下一个项目中工作的库。
有关详细信息,请阅读本书的第9章。