在C#中,用try{}catch{},当有异常时,我想抛出一个异常,同时还想返回一个值,如何做?
如try{
   //do something
}
catch(Exception ex)
{
   throw new Exception(ex.message);
   return false;
}
但这样做编译时说return false;永远不会执行

解决方案 »

  1.   

    这样行不行?加个变量
    bool returnValue=true;
    try
    {
    }
    catch
    {
      returnValue=false;
      throw;
    }
    return returnValue;
      

  2.   

    try{
       //do something
    }
    catch(Exception ex)
    {
       throw new Exception(ex.message);
       return false;
    }当然了  这是架构不好  你可以吧错误写在本地机器上   return false;出去
      

  3.   

    用OUT参数 在Catch里捕捉到异常后对OUT参数赋值
      

  4.   

    有个问题,如果抛出了异常,那么还会执行return么?所以像楼上说的先对OUT参数赋值,然后再执行throw new Exception(ex.message)应该是对的.
      

  5.   

    public a(int a, out int State)
    {
      State = 0;
    }
      

  6.   

    public String a(int a, out int State)
    {
    State = 0;
    }
      

  7.   

    try
    {
    }
    catch
    {
      returnValue=false;
      throw;
    }
    finally
    {
    return returnValue;  
    }