异常处理一直没明白...如果下面我装入list<>()图片地址的时候图片文件找不到,我想忽略找不到的图片从下一条继续装入应该如何写?
下面代码放在什么地方?try里? catch里?还是外边?
            while(rs.Read())
                {
                    cj_names = rs[1].ToString();
                    cj_pic_path = rs[3].ToString();
                    cj_id = rs[0].ToString();
                    names.Add(cj_names);
                    id.Add(cj_id);
                    lst.Add(Image.FromFile(cj_pic_path));
                    //从数据库中取得图片信息
                }try ... catch是这么用吗?try 
{
//放的是代码出错的情况?
}
catch(出错类型?)
{
//这里写的是处理出错方法的代码?
}
finally
{
无论如何都会执行的代码?
}            try
            {
            File.Exists(cj_pic_path);   
            } 
            catch(FileNotFoundException)
            {
               //
            }
           finally
           {
           conn.close
           }            while(rs.Read())
                {
                    cj_names = rs[1].ToString();
                    cj_pic_path = rs[3].ToString();
                    cj_id = rs[0].ToString();
                    names.Add(cj_names);
                    id.Add(cj_id);
                    lst.Add(Image.FromFile(cj_pic_path));
                    //从数据库中取得图片信息
                }

解决方案 »

  1.   

       try {
                   while(rs.Read())
                    {
                       cj_names = rs[1].ToString();
                      if( File.Exists(rs[3].ToString()))
                      {
                        cj_pic_path = rs[3].ToString();
                        cj_id = rs[0].ToString();
                        names.Add(cj_names);
                        id.Add(cj_id);
                        lst.Add(Image.FromFile(cj_pic_path));
                        //从数据库中取得图片信息
                          }
                    }
                } 
                catch(FileNotFoundException)
                {
                   //
                }
               finally
               {
               conn.close
               }           
      

  2.   

    try
                {
                File.Exists(cj_pic_path);   
    while(rs.Read())
                    {
                        cj_names = rs[1].ToString();
                        cj_pic_path = rs[3].ToString();
                        cj_id = rs[0].ToString();
                        names.Add(cj_names);
                        id.Add(cj_id);
                        lst.Add(Image.FromFile(cj_pic_path));
                        //从数据库中取得图片信息
                    }
                } 
                catch(Exception ee)
                {
                   throw ee;
                }
               finally
               {
               conn.close
               }            
      

  3.   

    try  
    {
    //放的是代码出错的情况?
    }
    catch(出错类型?)
    {
    //这里写的是处理出错方法的代码?
    }
    finally
    {
    无论如何都会执行的代码?
    }
    这个就是最好的注释了
      

  4.   


    呵呵 这里是我自己理解的意思所以才加上 "?" 弱弱问一下 throw如何使用?
      

  5.   

    public void Delete(string userName)
    {
        if(userName == null) throw new ArgumentNullException("用户名不能为null");
    }
    try
    {
        Delete(null);
    }
    catch(Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
      

  6.   

    throw在catch里面抛出异常信息。            try
                { }
                catch (Exception e)
                {
                    throw e.ToString();
                }
    我正在使用《Csdn收音机》第一时间获取最新动态!
      

  7.   

    在哪会出错,就把那里try起来,在循环里可以在
    catch
    {
    //此处不处理异常,忽略后面的操作,继续循环
    continue;
    }
      

  8.   

    try
    {
        lst.Add(Image.FromFile(cj_pic_path));
    }
    catch
    {
        continue;
    }
      

  9.   

    http://www.xue5.com/itedu/200908/345091.html
      

  10.   

    throw是将错误抛出,但按照楼主的意思,这里可以把throw去掉。。
      

  11.   

    使用throw可以自定控制异常的抛出,这点对逻辑异常很有用。比如某个系统不允许订单号为0,但是该值为0时,不许引起任何.net自身的异常,但根据系统逻辑,一旦订单号为0,必须停止运行,这时就可以用throw啦。if( 0 == orderNumber ) throw new Exception("订单号不能为0");
      

  12.   

    为什么非要用try catch来处理你这种情况呢?直接if判断不就完了吗?
      

  13.   

    直接判断路径是否存在,存在执行,不存在,继续循环,如果还要用try catch 效率上会慢很多的哦