try, catch,finally ,return 执行顺序及详解
来源:互联网 发布:java 中的super this 编辑:程序博客网 时间:2024/06/05 17:02
package com.bjsxt.Exception; import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException; public class TestException { public static void main(String[] args) { String str = new TestException().openFile(); System.out.println(str); } String openFile() { try { System.out.println("aaa"); FileInputStream fis = new FileInputStream("d:/a.txt"); int a = fis.read(); System.out.println("bbb"); return "step1"; } catch (FileNotFoundException e) { System.out.println("catching !!!!!"); e.printStackTrace(); return "step2";// 先确定返回值,并不会直接结束运行。 } catch (IOException e) { e.printStackTrace(); return "step3"; } finally { System.out.println("finally !!!!!"); // return "fff";不要在finally中使用return. } }}
执行顺序:
1.执行try,catch , 给返回值赋值
2.执行finally
3.return
try块
try语句指定了一段代码,该段代码就是一次捕获并处理的范围。在执行过程中,当任意一条语句产生异常时,就会跳过该段中后面的代码。代码中可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理
一个try语句必须带有至少一个catch语句块或一个finally语句块 。。
注:当异常处理的代码执行结束以后,是不会回到try语句去执行尚未执行的代码。
catch
a)每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。
b)常用方法:
toString ( )方法,显示异常的类名和产生异常的原因
getMessage( )方法,只显示产生异常的原因,但不显示类名。
printStackTrace( )方法,用来跟踪异常事件发生时堆栈的内容。
这些方法均继承自Throwable类
c)Catch捕获异常时的捕获顺序:
i.如果异常类之间有继承关系,在顺序安排上需注意。越是顶层的类,越放在下面。再不然就直接把多余的catch省略掉。
finally
有些语句,不管是否发生了异常,都必须要执行,那么就可以把这样的语句放到finally语句块中。
通常在finally中关闭程序块已打开的资源,比如:文件流、释放数据库连接等。
阅读全文
0 0
- try, catch,finally ,return 执行顺序及详解
- try-catch语句中return和finally执行顺序详解
- try、catch、finally 执行顺序 及 return 关系浅谈一
- 异常处理及try/catch/finally/return 的执行顺序:
- try-catch-finally执行顺序及多return语句效果
- try, catch, finally, return的执行顺序
- try、catch、finally、return的执行顺序
- try、catch、finally、return的执行顺序
- try catch finally return 的执行顺序
- try、catch、finally、return的执行顺序
- try catch finally return 的执行顺序
- try-catch-finally return执行顺序
- try catch finally return 的执行顺序
- try catch finally return 执行顺序
- try-catch-finally-return的执行顺序
- try、catch、finally、return的执行顺序
- try-catch-finally-return执行顺序
- try catch finally return执行顺序
- source insight使用方法简介
- 一致性Hash算法
- JS生成 UUID的四种方法
- uva10905 最大整数组合
- apt-get install E: Encountered a section with no Package: header
- try, catch,finally ,return 执行顺序及详解
- View的工作流程-measure、layout、draw三大流程
- Python Excel数据查找
- 476. Number Complement(给一个数字求反)
- mvc和spring的结合使用
- SwipeMenuRecyclerView的使用,侧滑删除
- 1093:输入输出练习1
- 麻省理工大学公开课笔记:算法导论(一)——引言
- XShell上传、下载本地文件到linux服务器