在函数体内...我使用try----catch----finally
如果我在try{return;}请问在finally{}中的语句还能执行不?
谢谢各位了...

解决方案 »

  1.   

    finally{}是不管上面try{}Catch{}结果如何都执行的
      

  2.   

    但我在try{}时写上return;整个函数已经不执行了..
      

  3.   

    finally是在try或catch之后执行的,所以你的try中加return的结果是直接使try结果,然后执行finally,这两个部分没有干扰的。
      

  4.   

    执行。tjvictor(终于升星了,向两星奋斗) 说得很明白。
      

  5.   

    zouqiang122(先天不足) ( ) 信誉:100    Blog  2007-03-29 11:23:11  得分: 0  
     
     
       但我在try{}时写上return;整个函数已经不执行了..
      
     扯淡!
      

  6.   

    finally连exception都能抓住,别说正常的return了。
      

  7.   

    catch 用于处理语句块中出现的异常,而 finally 用于保证代码语句块的执行,与前面的 try 块的退出方式无关。
      

  8.   

    finally 块用于清除 try 块中分配的任何资源,以及运行任何即使在发生异常时也必须执行的代码。控制总是传递给 finally 块,与 try 块的退出方式无关。备注
    catch 用于处理语句块中出现的异常,而 finally 用于保证代码语句块的执行,与前面的 try 块的退出方式无关。示例
    在此例中,有一个导致异常的无效转换语句。当运行程序时,您收到一条运行时错误信息,但 finally 子句仍继续执行并显示输出。   复制代码 
    // try-finally
    using System;
    public class MainClass
    {
        static void Main()
        {
            int i = 123;
            string s = "Some string";
            object o = s;        try
            {
                // Invalid conversion; o contains a string not an int
                i = (int)o;
            }
            finally
            {
                Console.Write("i = {0}", i);
            }
        }
    }
     注释
    上面的示例将导致引发 System.InvalidCastException。尽管捕捉了异常,但仍会执行 finally 块中包含的输出语句,即:i = 123 有关 finally 的更多信息,请参见 try-catch-finally。C# 语言规范
    有关更多信息,请参见 C# 语言规范中的以下各章节:5.3.3.14 Try-finally 语句8.11 try 语句16 异常请参见
    任务
    如何:显式引发异常参考
    C# 关键字
    The try, catch, and throw Statements
    异常处理语句(C# 参考)
    throw(C# 参考)
    try-catch(C# 参考)概念
    C# 编程指南其他资源
    C# 参考