如何处理 DataSet.Fill 的错误?
Posted
技术标签:
【中文标题】如何处理 DataSet.Fill 的错误?【英文标题】:How do I handle errors with DataSet.Fill? 【发布时间】:2017-01-20 08:00:28 【问题描述】:我想帮助this guy,他的代码中有catch(Exception)
子句。不好的做法。应该捕获特定的异常。好的,那它们是什么?
我查阅了他调用的唯一方法OdbcAdapter.Fill(DataSet) 的文档,并找到了输入/输出列表,该列表通常列出了所有可能的异常。没有列出。它会抛出任何东西吗?
然后我找到了this documentation,这表明Fill
不会抛出异常,它会吞下它们,而是引发events。
但后来我找到了this。
还有this。
OdbcDataAdapter.Fill(DataSet)
是否抛出异常?有什么例外?它会引发事件吗?
【问题讨论】:
【参考方案1】:它可能对你有帮助。
以下代码示例为 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
【讨论】:
以上是关于如何处理 DataSet.Fill 的错误?的主要内容,如果未能解决你的问题,请参考以下文章