Java 编程思想---异常处理
2017-11-09 10:52
281 查看
1 把当前异常对象重新抛出,那么printStackTrace()只是记录上次异常抛出点的调用栈信息,而非重复异常抛出点的信息;
要想更新这个信息,可以调用fillInStackTrace(),即throw (Exception)e.fillInStackTrace();这将返回一个Throwable对象,它是通过把当前调用栈信息填入到原来那个异常对象而建立的。
2 如果再次抛出另外一个新的异常,得到的结果类似于fillInStackTrace(),原来抛出点的异常信息全部丢失,显示的是新抛出异常的堆栈信息。
3 异常链可以追溯异常发生的真正位置,cause
4 只有三种类带了Cause参数的构造函数,分别是Error Exception 和 RuntimeException,自定义的异常类,需要调用其initCause(Throwable e)函数来链接其他类型的异常类。
5 异常丢失,当某些特殊的使用fiinally子句,会导致异常丢失
6.子类构构造器的异常说明必须包含父类的异常说明,但是子类构造器不能捕获父类构造器的异常;子类构造器还能抛出其他异常;
7.子类覆盖父类的普通方法,是不能随便添加异常的‘;
8.如果子类继承的接口和子类继承的父类普通方法抛出不一样的异常,那么子类不能抛出任何异常。
9 子类普通方法可以不抛出任何异常
10 子类继承的抽象方法也可以不抛出任何异常,即使父类抽象方法里声明了要抛出异常;
11 不能基于异常说明来重载方法。
12 一个对象没有初始化成功,是不需要清理的,否则一定要清理
13 异常遵循就近匹配原则,
14 捕获该异常类 和从该异常类派生出来的子类
15 因此要先捕获子类,再捕获基类(其实也不会执行),反着来,就会编译报错
要想更新这个信息,可以调用fillInStackTrace(),即throw (Exception)e.fillInStackTrace();这将返回一个Throwable对象,它是通过把当前调用栈信息填入到原来那个异常对象而建立的。
2 如果再次抛出另外一个新的异常,得到的结果类似于fillInStackTrace(),原来抛出点的异常信息全部丢失,显示的是新抛出异常的堆栈信息。
3 异常链可以追溯异常发生的真正位置,cause
4 只有三种类带了Cause参数的构造函数,分别是Error Exception 和 RuntimeException,自定义的异常类,需要调用其initCause(Throwable e)函数来链接其他类型的异常类。
5 异常丢失,当某些特殊的使用fiinally子句,会导致异常丢失
6.子类构构造器的异常说明必须包含父类的异常说明,但是子类构造器不能捕获父类构造器的异常;子类构造器还能抛出其他异常;
7.子类覆盖父类的普通方法,是不能随便添加异常的‘;
8.如果子类继承的接口和子类继承的父类普通方法抛出不一样的异常,那么子类不能抛出任何异常。
9 子类普通方法可以不抛出任何异常
10 子类继承的抽象方法也可以不抛出任何异常,即使父类抽象方法里声明了要抛出异常;
11 不能基于异常说明来重载方法。
12 一个对象没有初始化成功,是不需要清理的,否则一定要清理
13 异常遵循就近匹配原则,
14 捕获该异常类 和从该异常类派生出来的子类
15 因此要先捕获子类,再捕获基类(其实也不会执行),反着来,就会编译报错
相关文章推荐
- Java编程思想之通过异常处理错误
- java 异常处理机制(java 编程思想)
- 《java 编程思想系列之8》 通过异常处理错误
- java编程思想-12通过异常处理错误
- Java 编程思想12通过异常处理错误12.1-概念
- Java编程思想——ch01 对象导论
- Java 编程思想读书笔记(一)---多态
- Java 编程思想(二)内部类和闭包
- Java编程思想--第二章 一切都是对象
- [Java编程思想-学习笔记]第4章 控制执行流程
- Java编程思想学习(九) 异常处理
- 【Java编程思想】笔记(一)
- 1.java编程思想之对象导论
- Java编程思想学习心得(五)自动递增和递减操作符的陷阱
- moon 通过异常处理错误 编程思想第12章
- Java编程思想 精彩评注分享一
- Java编程思想之数组
- 《Java 编程思想》--第十八章:Java I/O 系统
- Java编程思想:第8章 多态
- java编程思想之英语单词(14章)