c# - 一个异常两条消息

标签 c# mysql ado.net

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

enter image description here

有人可以帮助我吗?

提前致谢!

最佳答案

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

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);
}

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

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

关于c# - 一个异常两条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15974245/

相关文章:

c# - 套接字编程 - 连接尝试失败异常

C# 视频播放器

c# - 使用 Asp.net 连接 MySql 时出错

mysql - 基于其他列的 SUM(DISTINCT)

php - 从包含元素的键的值枚举多维 PHP 数组上的键的最优雅的方法是什么?

c# - 将DataTable中的数据插入到数据库表中

sql - 使用SQLite的 Entity Framework

.net - 与 |Pipe-delimited| 有什么关系?连接字符串中的变量?

c# - WinForms 拖放中的 e.Data.GetData 转换问题

mysql - 选择、存储、从不同表中选择