java中 try catch finally return执行的顺序
2018-08-30 10:40
417 查看
小疯之前遇到一个问题,就是关于return和finally的执行顺序问题,其实关于这个问题小疯许久之前在一篇博客中看到了解答,不过由于时间间隔找不到了,所以小疯今天在这里记录一下:
执行顺序是:先try 若有异常就catch,然后finally,之后执行catch中的return,如果finally中也有return,那么久直接出去不执行catch中的return。
1、finally中也有return语句如下:
执行结果如下:
try
catch
finally
return in finally
可见顺序是先执行try中的输出语句然后在异常处调到catch语块,然后执行到catch中的return处没有执行return而是跳转到finally中执行。
2、finally中没有return语句:
执行结果如下:
try
catch
finally
return
可见执行顺序是先执行try中的输出语句然后在异常处调到catch语块,然后执行过catch的输出语句跳转到finally中执行之后返回到catch中的return语句。
执行顺序是:先try 若有异常就catch,然后finally,之后执行catch中的return,如果finally中也有return,那么久直接出去不执行catch中的return。
1、finally中也有return语句如下:
public class TryTest { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(TryTest.test()); } public static String test() { try { System.out.println("try"); throw new Exception(); } catch(Exception e) { System.out.println("catch"); return "return"; } finally { System.out.println("finally"); return "return in finally"; } } }
执行结果如下:
try
catch
finally
return in finally
可见顺序是先执行try中的输出语句然后在异常处调到catch语块,然后执行到catch中的return处没有执行return而是跳转到finally中执行。
2、finally中没有return语句:
public class TryTest { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(TryTest.test()); } public static String test() { try { System.out.println("try"); throw new Exception(); } catch(Exception e) { System.out.println("catch"); return "return"; } finally { System.out.println("finally"); //return "return in finally"; } } }
执行结果如下:
try
catch
finally
return
可见执行顺序是先执行try中的输出语句然后在异常处调到catch语块,然后执行过catch的输出语句跳转到finally中执行之后返回到catch中的return语句。
相关文章推荐
- 关于Java中try-catch-finally-return的执行顺序
- 关于Java中try-catch-finally-return的执行顺序
- 【Java异常学习笔记系列】try/catch/finally执行顺序及总结(含return)
- 关于Java中try catch finally throw return的执行顺序问题
- Java-try_catch_finally中带有return语句的执行顺序
- 【Java】try-catch-finally语句中return的执行顺序思考
- Java学习笔记__异常机制_try_catch_finally_return执行顺序
- Java异常捕获之try-catch-finally-return的执行顺序
- Java异常处理机制以及try-catch-finally-return执行顺序
- Java异常捕获之try-catch-finally-return的执行顺序.md
- Java异常捕获之try-catch-finally-return的执行顺序-转载
- Java中try-catch-finally-return的执行顺序
- Java含有return 的try catch finally的执行顺序
- 【Java疑难杂症】有return的情况下try catch finally的执行顺序
- Java-有return的情况下try catch finally的执行顺序(最有说服力的总结)
- Java中try、catch、finally、return的执行顺序
- Java中try-catch-finally-return的执行顺序
- 【Java基础之finally和return】有return的情况下try catch finally的执行顺序
- java中try catch finally与return的执行顺序
- Java中try-catch-finally-return的执行顺序