thinking in java第七天
2015-04-14 12:04
176 查看
第十二章 异常处理
try { // Code that might generate exceptions } catch ( e) { // TODO: handle exception }
throw new NullPointerException("");在使用new 创建了异常对象之后,此对象的引用将传给throw
system.err.println();将错误发送给标准错误流,不会随System.out一起被重定向
Throwable类声明的printStackTrace():打印从方法调用处直到异常抛出处的方法调用序列
异常与记录日志:可以使用java.util.logging,也可以使用Apach下的common-logging.jar
自定义异常,通常都是直接继承某个异常类,重写构造器方法,覆盖getMessage方法
异常说明:即方法后面使用了throws,后面接一个所有潜在的异常类型的列表
getStackTrace()返回一个由栈轨迹中的元素构成的数组
重新抛出异常
会把异常抛出上一级的环境中的异常处理程序,通一个try的后续catch子句将被忽略(摩根的笔试题)
当抛出同一个异常时,fillInstackTrace()就成了异常的新发生地
当抛出的是不同的异常时,就相当于使用了fillInStackTrace(),原来异常发生点的信息会丢失
异常链
Throwable这个java类被用来表示任何可以作为异常被抛出的类
Error:表示编译时和系统错误
Exception:是可以被抛出的基本类型
并非所有的异常包都是从java.lang包里定义的,如IOException
RuntimeException:不需要再异常说明中声明方法将抛出该异常
如果RuntimeException没有被捕获而直达main(),那么在程序退出前将调用异常的printStackTrace()方法
只能在代码中忽略RuntimeException及其子类
finally:必然执行块
当涉及break,continue,return语句的时候,finally子句也会得到执行
当涉及到两种情况时,会导致异常丢失
前一个异常还没被处理就在finally中抛出下一个异常
直接在finally中return,这将屏蔽所以异常处理
相关文章推荐
- Thinking In Java 第七天
- thinking in java 阅读笔记 第三章 程序控制流程
- thinking in java 阅读笔记 第三章 程序控制流程
- [Thinking in JAVA] 接口的水也不浅
- thinking in java 阅读笔记 第四章 初始化和清除
- Thinking in Java(第四版)习题--第六章
- thinking in java 阅读笔记 第六章 类再生
- thinking in java 阅读笔记 第六章 类再生
- Thinking in java (第三版)第七章 多态性(Polymorphism)
- Thinking in Java 读书笔记 3
- Thinking in Java之内部类
- final关键字详解(超详细)参考(Thinking in java)
- 我的Thinking in Java学习笔记(二)
- 读thinking in java 笔记。
- Thinking in Java 8
- Thinking in java 读书笔记(六、接口:抽象类/方法,接口的属性和方法,策略模式,适配器模式,工厂模式)
- thinking in java 第二天
- Thinking in java 学习之操作符
- Thinking in Java --多态
- EXERCISE 21.22 - Thinking In Java(Fourth Edition)Page 107