你在Java中如何定义你自己的Exception层次结构?在Java中如何以及在哪里定义自己的Exception层次结构?
我的主要问题涉及你的Exception类必须被定义的包的位置。
我们是否为我们的异常创建了一个特殊的包,并将所有类放入其中?
你在Java中如何定义你自己的Exception层次结构?在Java中如何以及在哪里定义自己的Exception层次结构?
我的主要问题涉及你的Exception类必须被定义的包的位置。
我们是否为我们的异常创建了一个特殊的包,并将所有类放入其中?
我将此用作一般规则。
该语言没有指定什么要求,用户定义的类应该放入哪些包。只要该类延伸java.lang.Throwable
,就可以抛出该类。
您可以在任何地方创建您的Exception类。
重要的是扩展一个现有的Exception类(实际上是java.lang.Throwable
)。例如java.lang.Exception
或java.lang.RuntimeException
。第一个是检查异常,而扩展RuntimeException将导致未检查的异常;两者之间的差异详述如下here。
我把我所有的自定义异常放入com.company.project.exception
包中。我这样做,而不是让他们“靠近”他们出现的地点。
这里是我的推理:如果给定的异常只在某个地方出现在一个或两个服务类中,那么它可能不是一个足够的例外,应该拥有它自己的类。只有当我看到一个常见的主题出现在多个地方时,我才会去创建自定义Exception类的麻烦。如果它在多个地方出现,那么就没有合适的“附件”包,因此特定于异常的包似乎是正确的选择。
我认为提问者知道这一点。他的问题更多地涉及最佳实践。 – Sergio 2013-03-11 10:11:57