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

花点时间仔细为每个方法抛出的异常建立文档是特别重要的。

始终要单独的声明受检的异常,并且利用Javadoc的@throws标记,准确的记录下抛出每个异常的条件。

如果一个方法可能抛出多个受检异常,则不要使用“快捷方式”声明这个方法会抛出这些异常类的超类,如永远不要声明一个方法“throws Exception”,

或者更糟糕的是声明这个方法“throws Throwable”。因为这样的声明不仅没有为程序员提供关于“这个方法能够抛出哪些受检异常”的任何知道信息,

而且还大大妨碍了该方法的使用,因为它实际上掩盖了该方法在同样的执行环境上可能抛出的任何其他异常。

虽然Java语言并不要求程序员在一个方法的声明中写出它可能会抛出的未受检异常,但是,如同受检异常一样,仔细的为未受检异常建立文档是非常明智的。

未受检的异常通常代表编程上的错误,是不可恢复的,让程序员了解所有这些错误都有助于帮助他们避免犯这样的错误。使用Javadoc的@throws标签记录

一个方法可能抛出的每个未受检异常,但是不要使用throws关键字将未受检异常包含在方法的声明中。这样,程序员在使用这个方法时结合Javadoc的@throws

和方法声明的throws后面的异常,可以明确的知道这个方法抛出的异常哪些是受检的异常,哪些是未受检的异常。

时间: 2024-10-12 11:42:43

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

finally中使用return会吃掉catch中抛出的异常

今天学习大神的文章:深入理解java异常处理机制 学到一个有意思的知识点.如果在finally中使用return会吃掉catch中抛出的异常. 看例子: [java] view plaincopy public class TestException { public TestException() { } boolean testEx() throws Exception { boolean ret = true; try { ret = testEx1(); } catch (Excepti

java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个 PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回,这个过程实际上比我的描述要复杂 得多,这里我只是简单的一句带过,因为这

内部链接十二条网页黄金规则

seo似乎有个潜在的规则:seo优化中最不起眼的东西,最难学到的东西,就是网页的链接规则了,有关seo,网上流行一句话:内容为王,外链为皇.其实seo在你达到一定境界,接手的网站上了一定的规模的时候,网页的链接也就是所谓的网站内部链接就成了重中之重,seo这个行业高层也流行一句话:小网站靠外链,大网站靠内链.这些都是长时间致力于seo行业的朋友们总结出来的经验之谈. 进入主题:内部链接十二条网页黄金规则 一:首页的logo图片都链向主页. 二:所有页的logo图片都链向主页. 三:页面导航,不要

[Effective Java 读书笔记] 第三章类和接口 第十二条

第十二条 使类和成员的可访问性最小化 总得来说,我们应该尽量将成员的访问范围限制到最小!有利于解耦,开发.测试和优化都能够更加独立. 对于成员(域,方法,嵌套类和嵌套接口),有四种可能的访问级别,访问范围从小到大: 1. private,只有声明成员的类的内部才能访问 2. 包级私有的,声明成员的类所在的包内的任何类都可以访问,如果成员不显示声明访问级别,就是这种级别,所以也成为缺省访问级别 3.protected,声明成员的类及其子类可以访问,并且声明类所在包中的任何类也可以访问 4.publ

QT开发(六十二)———QT5解析Json文件

QT开发(六十二)---QT5解析Json文件 一.QT5 Json简介 QT4中使用第三方库QJson解析JSON文件. QT5新增加了处理JSON的类,类均以QJson开头,包含在QtCore模块中.QT5新增加六个相关类: QJsonArray 封装 JSON 数组 QJsonDocument 读写 JSON 文档 QJsonObject 封装 JSON 对象 QJsonObject::iterator 用于遍历QJsonObject的STL风格的非const遍历器 QJsonParseE

ASP 三十二条精华代码 (1)

ASP 三十二条精华代码 (1) 2009-08-10 09:53:03  www.hackbase.com  来源:互联网 1. oncontextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键 <table border oncontextmenu=return(false)><td>no</table> 可用于Table 2. <body onselectstart="return

第十二条:考虑实现Comparable接口

与前面讨论的方法不同,compareTo()方法并没有在Object类中定义.相反,它是Comparable接口中唯一的方法. 一个类的实例对象要想是可以比较大小的,那么这个类需要实现Comparable接口,必须正确的实现compareTo()方法. 一个类实现了Comparable接口,就表明这个类的实例对象具有内在的排序关系. 一旦类实现了Comparable接口,那么这个类就可以和依赖于该接口的集合实现进行协作,实现强大的功能. JDK中的所有值类,String类都已经实现了Compar

三五个人十来条枪 如何走出软件作坊成为开发正规军

三五个人十来条枪 如何走出软件作坊成为开发正规军(转载) 自从发了上一篇博文,这几天收到很多朋友的来信. 大家从各个开发语言的优缺点和适用领域,一直讨论到设计模式.框架.重构.单元测试,乃至敏捷编程,最后都讨论到了软件开发过程管理,甚至都谈到了盈利模式和中国软件 的悲哀. 最后不了了之,都觉得改善中国内地现在的软件生产状况不可能. 为什么呢? 我重新把这几天大家的讨论留言翻了一遍,发现大家的软件团队都存在着这样一种普遍现象 1大部分人所在的公司,开发人员仅3-5人,多的在10人.别看就这几条枪,

hadoop学习;hdfs操作;运行抛出权限异常: Permission denied;api查看源码方法;源码不停的向里循环;抽象类通过debug查找源码

eclipse快捷键alt+shift+m将选中的代码封装成方法:alt+shift+l将选中的代码添加对应类型放回参数 当调用一个陌生方法时,进入源码不停的向里循环,当找不到return类似方法的时候,可以看到最原始的方法 package com.kane.hdfs; import java.io.InputStream; import java.net.URL; import org.apache.hadoop.fs.FsUrlStreamHandlerFactory; import org