Java自定义异常:包约定?
创建Java自定义异常:包约定?,java,exception,Java,Exception,创建自定义异常类(例如自定义运行时异常)时,是否有特定的约定在文件夹/包结构中的何处创建它 是否所有自定义异常类都应位于同一个包中?异常类应始终与能够引发异常的类定义在同一个包中。不要仅仅为了保存异常而创建单独的包 通常,一个包应该封装一个主要的功能单元。异常是该功能的一部分 子包的创建应仅限于对类和/或方法的访问。这是通过创建“包访问”类和/或方法实现的:它们既不是公共的,也不是受保护的,也不是私有的。没有访问修饰符意味着它们只对同一包中的类可见。如果您没有任何此类类或方法,则可能不应该制作子
自定义异常类
(例如自定义运行时异常)时,是否有特定的约定在文件夹/包
结构中的何处创建它
是否所有自定义异常类都应位于同一个包中?异常类应始终与能够引发异常的类定义在同一个包中。不要仅仅为了保存异常而创建单独的包 通常,一个包应该封装一个主要的功能单元。异常是该功能的一部分 子包的创建应仅限于对类和/或方法的访问。这是通过创建“包访问”类和/或方法实现的:它们既不是公共的,也不是受保护的,也不是私有的。没有访问修饰符意味着它们只对同一包中的类可见。如果您没有任何此类类或方法,则可能不应该制作子包
不应为以下内容创建子包:
- 将几个碰巧有一些共同点的类分组。(注意,JavaSE中没有java.text.format、java.net.socket或javax.swing.button包。)
- 因为包中似乎有太多类,所以将其拆分。(在一个包中包含50个类没有什么错。)
子包的创建应该只限制对类和/或方法的访问
-所以您想强调一下,包的唯一功能是封装?你完全否认软件包是构造代码的手段?@Max是的,没错。例外情况不是结构的一部分。单独的软件包是主要的功能单元。@ VGR,嗯,我知道你有这个观点,我不清楚为什么你不考虑在不同的层次上有不同用途的包(作为语言工具)。我的意思是类似smth的软件包是按功能划分的(我们有3-4个选择中的最佳设计选择),但在较低的级别上,软件包可以具有结构或功能分解的角色。