zoukankan      html  css  js  c++  java
  • try-catch-finally

    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语句。

  • 相关阅读:
    完整java开发中JDBC连接数据库代码和步骤
    2007最后一贴
    ajax数据加载经验分享
    vs2008中文版提供下载(包含中文msdn)
    修改服务器控件的ID和Name
    你使用控件吗?会用吗?
    自定义控件集
    asp.net控件开发基础示例代码打包
    javascript好文章收藏
    wpf学习笔记简单绑定
  • 原文地址:https://www.cnblogs.com/hobby0524/p/3251316.html
Copyright © 2011-2022 走看看