我们处理异常还可以使用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进行了改变,但是不会影响返回结果,应该使用栈保存返回值。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程