10.异常处理机制(1)
异常处理机制
- 使用try...catch捕获异常
- 异常类的继承体系
- Java 7提供的多异常捕获
在Java 7以前,每个catch块只能捕获一种异常;从Java 7之后,一个catch块可以捕获多种异常类型。
使用一个catch块捕获多种异常类型的异常是需要注意如下两个地方:
-
- 捕获多种类型的异常时,多种异常类型之间用竖线(|)隔开!
- 捕获多中类型的异常时,异常变量有隐式的final修饰,因此程序不能对异常变量重新赋值!
- 但是捕获一种类型的异常时,银城变量没有隐式的final修饰,于是,可以对异常变量重新赋值是正确的!
public class MultiExceptionTest{ public static void main(String[] args){ try{ int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); int c = a/b; System.out.println("输入的两个数相除的结果是:"+c); //System.out.println(a+","+b); }catch( IndexOutOfBoundsException | NumberFormatException | ArithmeticException e1){ System.out.println("程序发生了数组越界、数字格式异常、算术异常之一"); //捕获多异常时,异常变量默认有final修饰,因此对异常的重新赋值是错误的 e1 = new ArithmeticException("test"); }catch(Exception e2){ System.out.println("未知异常!!!"); //捕获一种异常时,异常变量没有final修饰,因此下面代码是正确的 e2 = new RuntimeException("test"); } } }
4. 访问异常信息
5. 使用finally回收资源
6. 异常处理的嵌套
7. Java 7的自动关闭资源的try语句

浙公网安备 33010602011771号