第六十二条 每个方法抛出的异常都要有文档

每个方法,都要有文档注释,这样便于后期自己回顾当初的功能以及便于他人的阅读理解,同样的,每个方法抛出的异常,也需要文档注释。因此,花费时间为每个方法抛出的异常文档是特别重要的。我们要记住,需要声明受检的异常,用Javadoc的@throws标记,并记录每个异常的条件。如果一个方法会抛出多个异常类,不要直接声明可以抛出这些类的父类,也不要声明一个方法 “throws Exception”,或者直接声明 “throws Throwable”,这种写法比较极端,给外面暴露的信息就是,这里可能会有异常,没有其他信息了。这种做法除了防止崩溃外,基本无作用,甚至还有反作用,它掩盖了具体要抛出的异常,甚至因此掩盖了其他条件可能产生出的异常,令我们不知道其他地方可能会有问题。

为方法抛出的异常建立文档注释,可以让其他人阅读代码时,能够注意到这里面哪些地方肯能会产生错误,让他们能够注意避免这些错误;完整的文档,可以组织成为列表文档,这样就可以描述出正确使用方法的前提,让使用者一目了然。因此,在文档中记录下未受检的异常是满足前提条件的最佳做法。这份文档成了该接口的通用约定的一部分,它指定了该接口的多个实现必须遵循的公共行为。

使用Javadoc的@throws标签记录一个方法可能抛出的个个未受检异常,但是不要使用throws关键字将未受检的异常包含在方法的声明中。使用API的程序员必须知道哪些异常是需要受检的,哪些是不需要受检的,这很重要,因为这两种情况下他们的责任是不同的。当缺少由throws声明产生的方法标头时,由Javadoc的@throws标签所产生的文档就会提供明显的提示信息,以帮助程序员区分受检的异常和未受检的异常。

为每个方法可能抛出的所有未受检异常建立文档是很理想的,现实中并非总能做到这一点。我们只能尽量的做到,因为方法可能会变化,对应的抛出异常可能也会变化。如果一个类中有多个方法都抛出相同的异常,可以共用一个文档。总而言之,要为你编写的每个方法所能抛出的每个异常建立文档。

猜你喜欢

转载自blog.csdn.net/Deaht_Huimie/article/details/84065190