请大家帮我看一下函数怎么写错了,应该怎么修改呢?
  public  int Find()      //错误并非所有的代码路径都返回值
{
if(FrmQuitFind.s!=null)
{
custds = findFacade.GetFindData(sql);
try
{
custds = findFacade.GetFindData(sql);
if(0 == custds.Tables[0].Rows.Count)
{
  return 0;

  
}
else
{

      return 1;
}
}
catch(Exception ex)
{
    QuickMessage.MsgInfo(ex.Message);

}
}
============================================================
                                              if(s==1)
{
this.DialogResult = DialogResult.OK;
}
else
{
this.DialogResult = DialogResult.None;


}

解决方案 »

  1.   

    catch(Exception ex)
    {
        QuickMessage.MsgInfo(ex.Message);
    return 0;

    }
      

  2.   

    你的函数是int型的,这就以为着在任何情况下,都得有个int型的返回值
      

  3.   

    if(s==1)
    {
    this.DialogResult = DialogResult.OK;
                                                  return 1;
    }
    else
    {
    this.DialogResult = DialogResult.None;
             return 0;

    }
      

  4.   

    if(FrmQuitFind.s!=null)
    {
    ....
                              }
    else
    {
    return 0;
    }
      

  5.   

    catch(Exception ex)
    {
        QuickMessage.MsgInfo(ex.Message);

    }
    这里需要添加一个返回值。或者你可以throw ex.Message.让调用它的方法来获取这个错误信息
      

  6.   

    要这么多的return 干吗啊,你定义一个整形啊,在程序里先赋值,到最后来个return就不会错了
      

  7.   

    你定义一个整形啊,在程序里先赋值,到最后来个return就不会错了
      

  8.   

                               int s=this.Find(); 
    if(s==1)
    {
    this.DialogResult = DialogResult.OK;
    }
    else
    {
    this.DialogResult = DialogResult.None;


    }
    }

    }
    ----------------------------------------------------------------------------------
    public  int Find()
    {
    if(FrmQuitFind.s!=null)
    {
    findFacade = new FindFacade(); 
    custds = findFacade.GetFindData(sql);
    try
    {
    custds = findFacade.GetFindData(sql);
    if(0 == custds.Tables[0].Rows.Count)
    {
      return 0;

      
    }
    else
    {

          return 1;
    }
    }
    catch(Exception ex)
    {
        QuickMessage.MsgInfo(ex.Message);
     return 0;
    }
    }

    }
    //这么改还是不行啊? : 并非所有的代码路径都返回值
      

  9.   

    你定义一个整形啊,在程序里先赋值,到最后来个return就不会错了----给个代码例子
      

  10.   

    public  int Find()      //错误并非所有的代码路径都返回值
    {
    if(FrmQuitFind.s!=null)
    {
    custds = findFacade.GetFindData(sql);
    try
    {
    custds = findFacade.GetFindData(sql);
    if(0 == custds.Tables[0].Rows.Count)
    {
      return 0;

      
    }
    else
    {

          return 1;
    }
    }
    catch(Exception ex)
    {
        QuickMessage.MsgInfo(ex.Message);
                    return 0;

    }
    }
                return 0;        }
      

  11.   

    为什么函数返回int型的,都得有个int型的返回值呢?
      

  12.   

    那么如果是string型的是不是都得有个string型的返回值呢?
      

  13.   

    不管是什么类型的都必须要有返回值,除非是void的.
      

  14.   

    多清楚的错误说明,光有if,那样就算你把情况都写全了编译器也认为有别的可能,所以就有可能无返回值。这样的最好设个变量,在最后return一下,要么就仔细点都写上,还有就是用try/catch、if/else这样的结构,不容易出这样的错误
      

  15.   

    if(FrmQuitFind.s!=null){
    -------------------------
    问题出在这里,
    只有IF 却没有ELSE 问题出现在这句语句上面,我看了一下你的代码,没有看到这个语句的ELSE的代码。请仔细检查一下你的代码
      

  16.   

    net_lover(孟子E章) ( ) 信誉:140 正解catch 異常捕獲后就沒有返回值了。
    所以要在catch裏面或者最後加上一個return;
      

  17.   

    還有
    if(xxx)
    {
        ........
    }
    後面也要加上return;
      

  18.   

    public  int Find()      //错误并非所有的代码路径都返回值
         {
                    int inti ;
    if(FrmQuitFind.s!=null)
    {
    custds = findFacade.GetFindData(sql);
                                      
    try
    {
    custds = findFacade.GetFindData(sql);
    if(0 == custds.Tables[0].Rows.Count)
    {
      inti =0;

      
    }
    else
    {

          inti =1;
    }
    }
    catch(Exception ex)
    {
        QuickMessage.MsgInfo(ex.Message);
    inti  = -1
    }
                                       return inti;
    }
    这样就行了啊
      

  19.   

    FrmQuitFind.s==null时的也要返回一个int值
      

  20.   

    哈哈,终于被我抓到 net_lover(孟子E章) 一次失误了catch(Exception ex)
    {
        QuickMessage.MsgInfo(ex.Message);
    return 0;}本贴的问题所在是因为没有处理
    FrmQuitFind.s == null 的情况
    所以导致的错误而不是所谓catch中没有返回值事实上C#是不推荐在catch中有返回值的
    除了真的是想通过返回值来告诉上一级这里发生了异常实际上,你想把异常告诉上一级,用throw ex; 就好
      

  21.   

    return int//一个int 类型的返回值