我看了一下帮助,对Finally语句的解释是:Finally处理程序,它在每次块退出时都执行,不论退出是由正常控制流引起的还是由未处理的异常引起的。
相当于是程序在调用return语句时才执行该语句体。所以你在Finally语句体内写return语句是不对的。换个思维,你在finally
  {
    return strReturn;
  }
里写返回值是没有意义的。因为无论有没有发生错误你都给返回值赋了值,程序都会返回一个值。又何必在finally里面再返回值呢?

解决方案 »

  1.   

    to  chyich() :
    我的本意是在try/catch中对返回值进行赋值,在finally时返回!这样避免了在try和catch中都写相同的语句。
    在return时执行finally语句体,你的意思是在finally语句体中写return语句会造成死循环?
      

  2.   

    按照你的意思,其实质都是一样的,但在语法上行不通,finally里面不能包含跳出函数体的语句,即return语句。所以你必须写成
    try
      {
        ...
        strReturn = "RIGHT";
        return strReturn;
      }
      catch
      {
        strReturn = "ERROR";
        return strReturn;  }
    这样。