之前给大家介绍一下java try catch语句,那么下面要继续给大家介绍的就是java try catch finally语句,一起通过文章来了解了解吧。
finally语句能够和之前介绍的try catch语句块匹配使用。
下面是语法格式:
try { // 可能会发生异常的语句 } catch (ExceptionType e) { // 处理异常语句 } finally { // 清理代码块 }
对于上面的格式,不管是否发生异常(特殊情况除外),finally语句块当中的代码都会被执行。
除此之外,finally语句也能够与try语句匹配使用。
下面是语法格式:
try { // 逻辑代码块 } finally { // 清理代码块 }
使用try-catch-finally语句注意点:
通常,不管是否有异常拋出,都会执行finally语句块中的语句。
try catch finally语句执行流程图:
try catch finally语句块的执行情况可以分成下面的三种情况:
假如,try代码块中没有拋出异常,那么,执行完try代码块之后直接执行finally代码块,之后,执行try catch finally语句块之后的语句。
假如,try代码块中拋出异常,并被catch子句捕捉,那么在拋出异常的地方终止try代码块的执行,转而执行相匹配的catch代码块,之后执行finally代码块,假如,finally代码块当中,没有拋出异常,那么就继续执行try catch finally语句块之后的语句;假如,finally代码块当中,拋出异常,那么,就将异常传递给该方法的调用者。
假如,try代码块中拋出的异常没有被任何catch子句捕捉到,那么将直接执行finally代码块中的语句,并将这个异常传递给该方法的调用者。
除非在try块、catch块中调用了退出虚拟机的方法System.exit(int status),否则不管在try块或者catch块中执行怎样的代码,出现怎样的情况,异常处理的finally块总会执行。
一般的情况之下,不在finally代码块中使用return或throw等导致方法终止的语句,否则将会导致try和catch代码块中的return和throw语句失效。
示例:
Windows系统启动之后,即使不作任何操作,在关机时都会显示“谢谢使用”。
下面编写java程序使用try catch finally语句这个过程。
代码实现:
import java.util.Scanner; public class Test04 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Windows 系统已启动!"); String[] pros = { "记事本" , "计算器" , "浏览器" }; try { // 循环输出pros数组中的元素 for (int i = 0; i < pros.length; i++) { System.out.println(i + 1 + ":" + pros[i]); } System.out.println("是否运行程序:"); String answer = input.next(); if (answer.equals("y")) { System.out.println("请输入程序编号:"); int no = input.nextInt(); System.out.println("正在运行程序[" + pros[no - 1] + "]"); } } catch (Exception e) { e.printStackTrace(); } finally { System.out.println("谢谢使用!"); } } }
上面的代码在main()方法中使用try catch finally语句模拟了系统的使用过程。
在系统启动之后,显示提示语,不管是否运行了程序,或者在运行程序时出现了意外,程序都将执行finally块中的语句,也就是显示“谢谢使用!”。
输出时的结果:
Windows 系统已启动! 1:记事本 2:计算器 3:浏览器 是否运行程序: y 请输入程序编号: 2 正在运行程序[计算器] 谢谢使用!
Windows 系统已启动! 1:记事本 2:计算器 3:浏览器 是否运行程序: y 请输入程序编号: 5 谢谢使用! java.lang.ArrayIndexOutOfBoundsException: 4 at text.text.main(text.java:23)
Windows 系统已启动! 1:记事本 2:计算器 3:浏览器 是否运行程序: asdfasd 谢谢使用!
关于java try catch finally语句就给你介绍到这里了,更多相关常见问题,请继续关注奇Q工具网来进行了解和学习吧。
推荐阅读: