0

当我在这段代码中遇到异常时,我不知道为什么异常消息会出现两次。我会尝试更好地解释它:一张图片胜过一千个字:

在此处输入图像描述

谁能帮我?

提前感谢!

4

1 回答 1

2

在图像中,您可以看到异常消息之间的换行符。在OdbcConnection类中,该CreateException()方法处理一个错误,并将它们与一个(来自 .NET 4.0 System.Data 的代码)OdbcErrorCollection粘合在一起:Environment.NewLine

internal static OdbcException CreateException(OdbcErrorCollection errors, ODBC32.RetCode retcode)
{
  StringBuilder stringBuilder = new StringBuilder();
  foreach (OdbcError odbcError in errors)
  {
    if (stringBuilder.Length > 0)
      stringBuilder.Append(Environment.NewLine);
    stringBuilder.Append(Res.GetString("Odbc_ExceptionMessage", (object) ODBC32.RetcodeToString(retcode), (object) odbcError.SQLState, (object) odbcError.Message));
  }
  return new OdbcException(((object) stringBuilder).ToString(), errors);
}

显然,底层库两次遇到相同的错误,然后向您抛出(一个)异常。

我不知道您是否可以采取任何措施来防止这种情况发生,您的代码似乎没有任何问题。

于 2013-04-12T14:57:54.107 回答