• try catch finally与return的执行顺序


    测试1:
        public static int test1()
        {
            int i = 1;
            try
            {
                return ++i;
            }
            finally
            {
                ++i;
                Console.WriteLine("finally:" + i);
            }
        }

        static void Main(string[] args)
        {
            Console.WriteLine("Main:" + test1());
        }
    结果:
    finally:3
    Main:2


    测试2:
        public static int test2()
        {
            int i = 1;
            try
            {
                throw new Exception();
            }
            catch
            {
                return ++i;
            }
            finally
            {
                ++i;
                Console.WriteLine("finally:" + i);
            }
        }

        static void Main(string[] args)
        {
            Console.WriteLine("Main:" + test2());
        }
    结果:
    finally:3
    Main:2


    测试3:
        public static int test3()
        {
            try{}
            finally
            {
                return 1;
            }
        }

    结果:
    编译错误,控制不能离开 finally 子句主体。


    结论:

    1.不管出没出现异常,finally块中的语句都会执行;
    2.当try或catch块中有return语句时,finally块中的语句仍会执行;
    3.finally块中的语句是在函数返回前执行的,但函数返回值是在finally块中语句执行前确定的;
    4.finally块中不能包含return语句。

  • 相关阅读:
    IDEA常用快捷键
    IDEA的使用
    IDEA的常用设置
    IDEA的下载安装
    004-解决多线程安全问题
    002-多线程的创建
    Java中字符串与日期之间的转换
    select标签的字体居中问题
    IntelliJ IDEA常用快捷键
    div小技巧之子元素垂直居中
  • 原文地址:https://www.cnblogs.com/zhc088/p/1701544.html
Copyright © 2020-2023  润新知