2015-11-02 132 views
2

当创建custom exception class(例如自定义运行时异常)时,是否有一个特定的约定来创建folder/package结构中的哪个位置?Java自定义异常:包约定?

是否所有的自定义异常类都在相同的包中?

+0

相同的包装?不,但他们都必须扩展Throwable或其任何子类。 – rajuGT

+0

不,你不应该创建单独的包。请参阅“按功能打包”:http://www.javapractices.com/topic/TopicAction.do?Id = 205 – user996142

+1

检查Java的例外情况是如何组织的并使用相同的方法。 – Kai

回答

7

一个异常类应该总是在与能够抛出它的类相同的包中定义。永远不要创建一个单独的包来保存异常。

一般来说,一个软件包应该封装一个主要的功能单元。例外是该功能的一部分。

仅应创建子包以限制对类和/或方法的访问。这是通过创建“包访问”类和/或方法完成的:它们既不公开也不受保护,也不私有。没有访问修饰符意味着它们仅对同一包中的类可见。如果你没有任何这样的类或方法,你可能不应该做一个子包。

子包应该用于创建:

  • 分组碰巧有一些共同的东西几类。 (请注意,Java SE中没有java.text.format或java.net.socket或javax.swing.button包。)
  • 分解包,因为它似乎有太多的类。 (在一个包装中有五十个类别没有问题。)