我们处理异常还可以使用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进行了改变,但是不会影响返回结果,应该使用栈保存返回值。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)