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

  • 相关阅读:
    如何让nodejs使用多线程执行
    web input光标的颜色
    web视频自定义规划
    webgl 学习注意事项
    前端url创建,以及base64与url的转化
    微信 input 照相机 呼出
    js 资源下载方法
    在React项目中使用React-intl实现多语言支持,以及对react-init各组件的解读
    React Native 的组件定义及使用
    AMD模块&CommonJs模块&ES6模块
  • 原文地址:https://www.cnblogs.com/hobby0524/p/3251316.html
Copyright © 2011-2022 走看看