作为公共类与公共静态内部类的异常
2022-09-01 03:56:40
我有两个选项(据我所知,它们在技术上是相同的)来声明仅从特定类引发的自定义异常类:com.XXX.Foo
- 作为包中的公共类:
com.XXX.CustomException
- 作为公共静态内部类:
com.XXX.Foo.CustomException
哪个选项更好?
我有两个选项(据我所知,它们在技术上是相同的)来声明仅从特定类引发的自定义异常类:com.XXX.Foo
com.XXX.CustomException
com.XXX.Foo.CustomException
哪个选项更好?
如果异常非常特定于类,我不介意将其保留为嵌套类。每当需要提取它的时候,只需将其提取出来即可。Foo
public
但是,在一般实践中,我从未见过为 Exception 定义的任何嵌套类。我也不知道Java API中是否存在一个。
在我10多年的Java经验中,我不记得遇到过一个API,其中公共异常类被定义为静态内部类。我无法给你一个具体的理由,为什么这样做会是一个坏主意,但它肯定会让你的代码变得不同寻常。
为什么你认为有必要这样做,因为(显然)没有其他人这样做?我希望你不只是为了“创新”。
(顺便说一句,我知道一些众所周知的Java API使用公共静态内部类和接口来做其他事情。我在这里专门讨论异常类的情况。