如何使用DataSet.Fill处理错误?

时间:2017-01-20 08:00:29

标签: c# .net

我想帮助this guy在他的代码中有catch(Exception)子句的人。不好的做法。应该捕获特定的例外。好的,他们是什么?

我查阅了他正在调用的唯一方法OdbcAdapter.Fill(DataSet)的文档,并找到了输入/输出列表,它通常列出了所有可能的异常。没有列出。它会抛出任何东西吗?

然后我找到了this documentation,这表明Fill不会抛出异常,它会吞下它们而是引发events

但后来我找到了this

this

OdbcDataAdapter.Fill(DataSet)是否会抛出异常?什么例外?它会引发事件吗?

1 个答案:

答案 0 :(得分:0)

它可以帮助你。

以下代码示例为DataAdapter的FillError事件添加事件处理程序。在FillError事件代码中,该示例确定是否存在精度损失的可能性,从而提供响应异常的机会。

 adapter.FillError += new FillErrorEventHandler(FillError);
 DataSet dataSet = new DataSet();
 adapter.Fill(dataSet, "ThisTable");
 protected static void FillError(object sender, FillErrorEventArgs args)
 {
     if (args.Errors.GetType() == typeof(System.OverflowException))
           {
               // Code to handle precision loss.
               //Add a row to table using the values from the first two            
               columns.
               DataRow myRow = args.DataTable.Rows.Add(new object[]
               {args.Values[0], args.Values[1], DBNull.Value});
               //Set the RowError containing the value for the third column.
                args.RowError = 
               "OverflowException Encountered. Value from data source: " +
                args.Values[2];
                args.Continue = true;
            }
  }

参考:https://msdn.microsoft.com/en-us/library/6d1wk41s(v=vs.110).aspx