一尘不染

抛出异常时的Java最佳实践:抛出核心Java异常

java

除了抛出new Exception("Some message", maybeSomeCause),这意味着我方法的所有调用者都需要捕获Exception(可以包含RuntimeExceptions),我想在出现问题时抛出一种更特定类型的异常。

我可以创建自己的扩展了Exception或其他异常类型的异常类型,但是我很好奇是否可以重用Java语言所附带的一些异常,例如:

  • IllegalArgumentException
  • UnsupportedOperationException
  • IOException
  • 其他?

还有其他我想念的吗?我在这里找到了有关“核心”异常的基本列表:http:
//rymden.nu/exceptions.html,并有大量解释。

谢谢!

编辑:

是否有很好的“核心”例外清单?

到目前为止的清单:


阅读 174

收藏
2020-12-03

共1个答案

一尘不染

是的,这样做非常好。实际上,它甚至是在《 有效Java》第二版中写的。 请参阅第248页上的第60项:“优先使用标准异常”

重用预先存在的异常有几个好处。其中最主要的一点是,它使您的API更易于学习和使用,因为它符合程序员已经熟悉的既定惯例。紧随其后的是,使用您的API的程序更易于阅读,因为它们不会被不熟悉的异常所困扰。最后(也是最少),较少的异常类意味着较小的内存占用空间和较少的加载类时间。

2020-12-03