我想帮助this guy在他的代码中有catch(Exception)
子句的人。不好的做法。应该捕获特定的例外。好的,他们是什么?
我查阅了他正在调用的唯一方法OdbcAdapter.Fill(DataSet)的文档,并找到了输入/输出列表,它通常列出了所有可能的异常。没有列出。它会抛出任何东西吗?
然后我找到了this documentation,这表明Fill
不会抛出异常,它会吞下它们而是引发events。
但后来我找到了this。
this。
OdbcDataAdapter.Fill(DataSet)
是否会抛出异常?什么例外?它会引发事件吗?
答案 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