zoukankan      html  css  js  c++  java
  • catch中return语句的执行时间

    catch中return语句的执行时间

    先考虑以下一个普通的示例:

    public static int main() {
        System.out.println("没有参数的main方法");
        try{
            a=4/0;
        }catch(Exception e){
            return ++a;
        }
        finally{
            a++;
            System.out.println("在finally中成功捕获异常!"+a);           
        }
        System.out.println("成功捕获异常!"+a);
        return 1;
    }
    public static void main(String[] string) {
        System.out.println(main());
        System.out.println("此时a的值为:"+a);
    }
    
    

    这段代码执行以后就是:

    没有参数的main方法
    在finally中成功捕获异常!2
    1
    此时a的值为:2
    

    从执行结果可以看到,finally语句块必然会执行。而且根据执行的结果可以看到,finally块的执行时间恰好在return 语句中的表达式语句之后(++a后).等finally语句最终执行完成,再最后执行return语句。也就是说finally语句块虽然一定会被执行,但是它却不能影响return语句表达式的值了。

    Date: 2012-10-08 21:00:46 中国标准时间

    Author: csophys

    Org version 7.8.11 with Emacs version 24

    Validate XHTML 1.0
  • 相关阅读:
    Tomcat部署方式
    JAVA顺序队列
    JAVA稀疏数组
    JAVA数组
    JAVA运算符
    JAVA数据类型
    《IBM —PC 汇编语言程序设计》 第三章习题
    《IBM —PC 汇编语言程序设计》 第二章习题
    W3school导航条 CSS
    网易新闻CSS
  • 原文地址:https://www.cnblogs.com/csophys/p/2715785.html
Copyright © 2011-2022 走看看