相关读书笔记列表
NO.42 尽量使用标准的异常
Java平台库中讫今为止最常被重用的异常如下:
IllegalArgumentException 参数值不合适
IllegalStateException 对于这个方法调用而言,对象的状态不合适(如初始化不恰当)
NullPointerException 在null被禁止的情况下参数值为null
IndexOutOfBoundsException 下标越界
ConcurrentModificationException 在禁止并发修改的情况下,对象检测到并发修改
UnsupportedOperationException 对象不支持客户请求的方法
其它的异常也可以使用,只要确保抛出异常的条件与文档要求一致即可。
NO.43 抛出的异常要适合于相应的抽象
高层的实现,应该捕获低层的异常,同时抛出一个可以按照高层抽象进行解释的异常,这种做法叫做异常转译(exception translation)。即如:
低层的异常被高层的异常保存起来,且高层的异常提供一个公有的访问方法来获得低层的异常,这种做叫做异常链接(exception chaining)。
异常链的实现非常简单,在1.4及以后版本中,可以通过Throwable来获得支持。
处理来自低层的异常,
最好的做法是,在调用低层方法之前通过一些检查等手段来确保它们会成功执行;
其次的做法是,让高层处理这些异常,从而将高层方法的调用者与低层的问题隔离开;
一般的做法是使用异常转译;
如果低层方法的异常对高层也是合适的,则将其从低层传到高层。
NO.44 每个方法抛出的异常都要有文档
总是要单独地声明被检查的异常,并且利用jacadoc的@throws标记,准确地记录下每个异常被抛出的条件。
使用javadoc的@throws标签积累下一个方法可能会抛出的每个未被检查的异常,但是不要使用throws关键字将未被检查的异常包含在方法的声明中。
如果一个类中的许多方法出于同样的原因而抛出同一个异常,那么在该类的文档注释中对这个异常做文档,而不是为每个方法单独写一个文档。
NO.45 在细节消息中包含失败 - 捕获信息
为了捕获失败,异常信息应该尽可能多的包含有意义的参数和域的值,如:IndexOutOfBoundsException应该包括上界、下界以及实际的下标。
NO.46 努力使失败保持原子性
一个失败的方法调用应该使对象保持“它在被调用之前的状态”,方法如下:
① 使用非可变对象;
② 在可变对象上的操作,应在执行前检查参数的有效性;
③ 写一段恢复代码,在执行失败的情况下,回滚到操作开始之前的状态(不常用);
④ 在对象的一份临时拷贝上执行操作,当完成之后,再把临时拷贝中的结果复制给原来的对象,如Collections.sort在执行排序之前,先把它的输入转储到一个数组中,这样既能降低内循环的开销,又能保证在排序失败的时候,输入列表将保持原样。
NO.47 不要忽略异常
除非有特殊的需求(如动画中的多帧图像播放),否则不要吃掉异常,至少在catch块中包含一条说明,用来解释为什么忽略这个异常。简单地将一个未被检查的异常传播到外界至少会使程序迅速地失败,从而保留了有助于调试该失败条件信息,比异常被忽略后的一个不可预测的时刻程序失败这种情况要强。
分享到:
相关推荐
"Effective Java读书笔记" Effective Java是一本关于Java编程语言的经典书籍,本笔记主要总结了Java语言的发展历程、静态工厂方法的应用、构造器模式的使用等重要知识点。 一、Java语言的发展历程 Java语言的发展...
《Effective Java》是Java开发领域的经典著作,作者Joshua Bloch深入浅出地阐述了编写高效、健壮的Java代码的技巧和最佳实践。以下是对该书部分内容的详细解释: 1. **产生和销毁对象** - Item1:静态工厂方法相比...
以下是对《Effective Java》笔记中可能涉及的关键知识点的详细解读: 1. **单例模式**:书中强调了如何正确实现单例模式,推荐使用`enum`来创建线程安全且唯一的实例,避免传统双重检查锁定的潜在问题。 2. **构造...
Effective Java 读书笔记 - 枚举与注解 本文总结了Effective Java 中关于枚举与注解的知识点,涵盖了枚举类型的优点、使用指南、避免使用 int 常量、使用 EnumSet 和 EnumMap 等。 枚举类型的优点 枚举类型提供了...
读书笔记:Effective Java中文版第3版笔记
《Effective Java》是Java...以上仅是《Effective Java》一书中部分核心知识点的概述,实际的读书笔记中会更详细地解释这些概念,并给出具体的示例代码。通过深入学习和实践,开发者可以极大地提升其Java编程的水平。
读书笔记:Effective Java中文版第二版示例、笔记
《Effective Java》是一本经典Java编程指南,作者是Joshua Bloch,这本书深入探讨了如何编写高质量、高效、可维护的Java代码。以下是对压缩包中各章节主要知识点的详细阐述: 1. **第2章 创建和销毁对象** - 单例...
读书笔记:Effective Java中文版学习项目
读书笔记:Java练习包括《Java编程思想》《算法》《Effective Java》等
读书笔记:Effective Java中文版 第2版
读书笔记:Effective Java中文版第二版示例代码
读书笔记:Effective Java 中文版(2版和3版)
读书笔记:读Effective Java中文版第3版阅读源码测试案列
读书笔记:Effective Java 中文版(第2版)总结 (美)Joshua Bloch 著
### Effective Java读书笔记(上) #### 第一章 引言 本书主要针对Java开发者提供了大量实用的编程指导建议,帮助读者提升代码质量和程序性能。在本章节中,我们将重点介绍对象的创建与销毁,以及一些重要的设计...
读书笔记:Effective.Java中文版(第3版)
除了课程内容,阅读官方文档、经典教材如《Head First Java》、《Effective Java》等,以及观看开源项目和在线教程,可以帮助巩固理论知识,提升实践能力。 总之,Java学习笔记旨在为初学者提供全面的学习路径,从...
“新建文本文档.txt”可能是一个简单的文本文件,用于记录学习过程中的笔记或者资源链接,或者可能是教程中的一部分内容,具体用途需打开文件查看。 总的来说,这份“Java学习PDF”是Java初学者宝贵的参考资料,...