for(10次循环)
{
    创建一个数据库操作类对象
    try
    {             try{利用数据库操作类对象  插入数据库}
             catch{ 进行插入的错误处理}
               try{利用数据库操作类对象  删除数据库}
             catch{ 进行插入的错误处理}
              。
    }
    catch
   {
          最外层错误处理
    }
    finally{关闭对象}}目的:如果在插入数据库错误的时候 捕捉一个异常显示出来,在删除出错的再捕捉一个异常显示出来。最外层主要是捕捉文件是否存在的异常,而且最后的finally是可以关闭对象 释放资源,请问这样的想法是否有问题?  而且是不是在插入出错的执行的是插入的异常处理还是最外层的错误处理呢?  望高手给解答一下。

解决方案 »

  1.   

    没必要这么多吧,把你的操作套在try 里面,不管插入还是删除,都会被catch到。
      

  2.   

    最外层一个包住循环就好了,还有有些数据库操作对象也是可以复用的,可以在for循环外面创建~
      

  3.   

    for (10次)
    {
        创建一个数据库操作类对象
      try
      {  利用数据库操作类对象 插入数据库}
      利用数据库操作类对象 删除数据库
      进行插入的错误处理
      。
      }
      catch
      {
      错误处理
      }
      finally{关闭对象}
    }
    以上结构的话  如果想在插入执行错误的时候 捕捉到填对话框显示为插入错误,删除执行错误的时候 捕捉后填对话框显示为为删除错误,这样的目的 应该怎么写比较好?
      

  4.   

    其实你原来的那个就可以了,稍改一下:
    SQLConnection conn = null;
    ...
    try
    {
     conn = new SQLConnection();
     ...
     for(10次循环)
     {
      try{利用数据库操作类对象 插入数据库}
      catch{ 进行插入的错误处理}  try{利用数据库操作类对象 删除数据库}
      catch{ 进行删除的错误处理}  ...
     }
    }
    catch
    {
     最外层错误处理
    }
    finally
    {
     if (conn != null)
     {
      conn.Dispose();
     }
     ...
    }
      

  5.   

    for (10次)
    {
      创建一个数据库操作类对象
      try
      {  利用数据库操作类对象 插入数据库
       }
      catch
      {
      错误处理
      }
      finally{关闭对象}
      try
      {
      利用数据库操作类对象 删除数据库
      }
     catch
      {
      错误处理
      }
      finally{关闭对象}  。
      }
    }2.要不然你自己设置一个标记,判断是在哪个位置错误,然后在最外层的catch中判断,在作出相应操作
      

  6.   

    最外层一个包住循环就好了,还有有些数据库操作对象也是可以复用的,可以在for循环外面创建~
      

  7.   


    如果在插入数据库的时候出现了异常 是接着下面的catch捕捉到呢 还是由最外层的捕捉到呢?
      

  8.   

    是接着下面的catch捕捉到了,而且在这个内部的catch块捕捉后你进行了处理,如果不再调用throw,则程序会继续往下运行,最外层的catch不会捕捉到这个异常
      

  9.   

    你可以这样,最好先知道有可能发生的错误类型(当你不用try catch是系统提示中会有xxxException)。
    在你的Catch里分开写:try{
    }
    catch (aException)
    {...}
    catch (bException)
    {...}