try catch finally return
Posted zhangoliver
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章
java异常中try或catch语句中可以有return语句吗?如有return会执行finall