首页 > 代码库 > try catch finally return
try catch finally return
我感觉这个问题,在java中应当经常被问到,结合简单的代码来看。
一般而言,我们都知道的一句话,try..catch...finally代码块在执行的时候,无论如何都会执行finally中的内容。
1.try 块 和 finally块中都有return,执行try块中的内容之后,执行finally块,并且用finally中的return结束函数的执行。
public int test1() { try { System.out.println("try block"); return 0; } catch (Exception e) { System.out.println("catch block"); return 1; // return from catch block } finally{ System.out.println("finally block"); return 2; //return from finally block } }
输出的是:
try block
finally block
2 try 中 有 return,finally中没有return。执行完finally中的语句之后,再执行try中的return。
public int test1() { try { System.out.println("try block"); return 0; } catch (Exception e) { System.out.println("catch block"); return 1; // return from catch block } finally{ System.out.println("finally block"); // return 2; //return from finally block } }
输出:
try block
finally block
0
执行完,finally中的语句之后,如果finaly中没有return,则到catch中寻找return子句,catch再没有的话,就要在往外寻找。
public int test1() { try { System.out.println("try block"); // return 0; throw new Exception("a exception"); } catch (Exception e) { System.out.println("catch block"); // return 1; // return from catch block } finally{ System.out.println("finally block"); // return 2; //return from finally block } return 3; // over test }
try catch finally return
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。