异常的继承关系与捕获关系(只有直系的继承关系时,下面的类才能被捕获,和辈分无关!!)
2011-12-09 21:42
344 查看
前言:今天看到系统自定义的SystemException 没有捕获 StringIndexOutOfBoundException。
SystemException 继承了 RuntimeException ;
StringIndexOutOfBoundException 继承了 IndexOutOfBoundException,
IndexOutOfBoundException 继承了 RuntimeException ;
哎~基础的东西都快忘了!!!
现象描述:
类A 继承RuntimeException
B 继承RuntimeException
C 继承B
try{
throw c;
} catch(A ex){
// c不能被捕获!!!
}
问:抛出C,能不能被A捕获。
回答:不能。
补充说明,就是算是A继承的是Exception,也不能捕获c
总结:
被抛出的异常能否捕获,不看catch时使用的这个类的辈分(级别)有多高,
而是看这个类和抛出的异常之间是否有直接继承关系!
SystemException 继承了 RuntimeException ;
StringIndexOutOfBoundException 继承了 IndexOutOfBoundException,
IndexOutOfBoundException 继承了 RuntimeException ;
哎~基础的东西都快忘了!!!
现象描述:
类A 继承RuntimeException
B 继承RuntimeException
C 继承B
try{
throw c;
} catch(A ex){
// c不能被捕获!!!
}
问:抛出C,能不能被A捕获。
回答:不能。
补充说明,就是算是A继承的是Exception,也不能捕获c
总结:
被抛出的异常能否捕获,不看catch时使用的这个类的辈分(级别)有多高,
而是看这个类和抛出的异常之间是否有直接继承关系!
相关文章推荐
- 子类异常和父类异常捕获的关系
- Android中使用ClassLoader修改自定义异常类继承来使异常捕获失效来坑害你的同事
- jpa的复合主键中关系中如何配置才能做到级联删除,我现在的问题是现在有一个学生类一个课程类,下面补充
- python异常类继承关系
- Java常见异常类的继承关系
- 一张图让你明白java异常分类(异常继承关系、自定义异常的写法)
- Java举例说明 里氏代换原则[能使用父类型的地方一定能使用子类型]之继承异常捕获顺序
- 03黑马程序员_异常捕获,关系表达
- C++ throw的实验 & 异常类继承关系
- 构造方法、命名空间、String 类、继承、异常捕获
- C++笔记(继承,多态,虚函数,模板函数,异常捕获)
- Python异常类的继承关系
- java异常-父类异常与子类异常之间的捕获关系
- 只有通过不断地构建和巩固,人际关系才能牢固
- Python(2.7.6) 异常类的继承关系
- Java -- 异常的捕获及处理 -- 异常类的继承结构
- Java常见异常类的继承关系
- 只有资源共享 中国共享软件才能突破性发展
- 二十一天学通C++之使用try/catch捕获异常
- JAVA异常总结 ------ 继承