zoukankan      html  css  js  c++  java
  • java中try-catch-finally-return的分析

    try/catch/finally

    一、疑问

    try-catch-finally-return的执行顺序是咋样的?
    当try和catch中有return语句时,finally块会不会执行?
    当try和catch中有return语句时 ,返回值是当try和catch中的返回值,还是finally 的返回值?
    示例一:

    1. 执行try里的语句,b = 3 暂存
    2. 没有异常,执行finally里 b = 5
    3. 继续跑到try里去return,此时b = 5了
    //答案是5
    
    示例二:

    1. 执行try, b = 3 暂存
    2. 没有异常,执行finally b = 5, 有return语句,继续执行 return 5;
    //答案 5 
    

    所以嘛:总结下来就是,如果try/catch/finaly都有return,返回finaly里的,finaly里没有,返回try/catch里的

    在try语句中,在执行return语句时,要返回的结果已经准备好了,就在此时,程序转到finally执行了。在转去之前,try中先把要返回的结果存放到不同于x的局部变量中去,执行完finally之后,在从中取出返回结果,因此,即使finally中对变量x进行了改变,但是不会影响返回结果。

  • 相关阅读:
    文件操作
    安全名词
    浏览器并发连接
    acm 2057
    acm 2072
    acm 2084
    acm 2044
    acm 2043
    acm 2032
    acm 2005
  • 原文地址:https://www.cnblogs.com/baijinqiang/p/13931279.html
Copyright © 2011-2022 走看看