我们处理异常还可以使用try…catch…finally语句,当程序执行到错误代码的地方,系统会抛出一个异常对象,程序转入catch块进行逐个匹配,如果匹配成功,程序则执行catch代码,如果匹配失败,程序则还给Java虚拟机处理。
try…catch…finally语句的格式如下:try{//包含可能发生异常的语句}catch(异常类名异常对象){//异常处理的代码}finally{//一定执行的代码}
注意事项:
1)try块代码尽量越少越好。
2)一旦try块代码中出现异常,无论try块后面有多少行代码,都不会被执行。
3)catch块中异常参数匹配同样满足多态Exception e = new ArithmeticException(/by zero);
4)try块只能够有一个,catch块可以有多个,try可以和catch组合,try可以和finally组合,try可以和catch和finally组合。
5)一般会把Exception作为catch的参数类型放在异常处理格式的最后。
6)Execption作为父类异常参数只能够出现在异常的最后面,先子类后父类。
7)finally修饰的代码块一定会被执行,除非在执行到finally之前程序异常退出或者调用了系统退出的方法。
8)在try语句中,在执行return语句时,要返回的结果已经准备好了,就在此时,程序转到finally执行了。在转去之前,try中先把要返回的结果存放到不同于x的局部变量中去,执行完finally之后,在从中取出返回结果,因此,即使finally中对变量x进行了改变,但是不会影响返回结果,应该使用栈保存返回值。