赞
踩
java中,将所有派生于Error类和RuntimeException类的异常称为unchecked异常(蓝色部分);其它的异常称为checked异常(粉色部分)。
程序中不需要处理Error类和RuntimeException类及其子类的异常,而所有的checked异常必须进行处理,否则会报编译错误。
注意:
finally永远会被执行。
try语句可以只有finally子句,而没有catch子句,也可以只有catch子句,没有finally子句。
例子:
- 【分析】下面两段代码在编译时有何区别?
- public static void main(String args[]) {
- throw new IOException();
- }
- public static void main(String args[]) {
- throw new NullPointerException();
- }
-
- //第一个是unchecked异常,不会报编译错误;第2个是checked异常,未处理,会报编译错误
- finally子句中如果有return语句,则可能会掩盖原始的返回值。分析下列代码:
- public static void main(String[] args) {
- System.out.println("" + getValue());
- }
- private static int getValue() {
- int z = 0;
- try {
- z = 8 / 0; //算术异常
- return z;
- } catch (Exception e) {
- return 7;
- } finally {
- return 8;
- }
- }
- //输出结果一直为8
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。