始终要单独地声明检查时异常,并且使用javadoc的@throws标记,准确地记录下抛出每个异常的条件。如果方法抛出多个异常类,不要使用它抛出异常类的父类。永远不要声明方法”throwsException”,或更糟糕的声明它”throw Throwable”。这样的声明没有给开发者关于”这个方法抛出哪些异常”的任何有用信息,实际上掩盖了该方法在同样的执行环境下可能抛出的任何其他异常, 因此会妨碍该方法的使用。
未受检的异常通常代表编程上的错误,让程序员了解所有这些错误都有助于帮助他们避免犯这样的错误。对于方法可能抛出的未受检异常,如果将这些异常信息很好地组织成列表文档,就可以有效的描述出这个方法被成功执行的前提条件。每个方法的文档应该描述它的前提条件,这个很重要,在文档中记录下未受检的异常时满足前提条件的最佳做法。
对于接口中的方法,在文档中记录可能抛出的未受检异常显得尤为重要。这份文档构成了该接口的通用约定的一部分,它指定了该接口的多个实现必须遵循的公共行为。
使用Javadoc的@throws标签记录一个方法可能抛出的每个未受检异常,但是不要使用throws关键字将未受检异常包含在方法的声明中。这样,程序员在使用这个方法时结合Javadoc的@throws和方法声明的throws后面的异常,可以明确的知道这个方法抛出的异常哪些是受检的异常,哪些是未受检的异常。