【发布时间】:2011-03-18 17:46:31
【问题描述】:
代码:
public static void Test()
{
try
{
OpenConnectionToDatabase(); //Opens a connection to Oracle DB
} catch(Exception e)
{
e.Data.Add("Query:", command.CommandText);
throw e;
}
}
当数据库服务器正在关闭并且通信中断时执行此代码时,.NET 会引发以下错误: 项目已添加。字典中的键:'查询:' 正在添加的键:'查询:' 在 System.Collections.ListDictionaryInternal.Add(对象键,对象值)
这怎么可能?
【问题讨论】:
-
OpenConnectionToDatabase 实际上做了什么?
-
OpenConnectionToDatabase()有完全相同的异常处理吗? -
也许异常中的数据字典已经有该键的条目。
-
OpenConnectionToDatabase 只是打开与数据库的连接,当数据库关闭时失败。 OpenConnectionToDatabase 确实抛出了它自己的异常,但它没有向 Data 属性添加任何内容。
-
@user666423:单步执行代码应该会确认两次执行...