抛出异常:System.Data.dll中的'System.IndexOutOfRangeException'
这是调试WPF应用程序时得到的输出。不止一次,但仅此而已。
没有行号,没有堆栈跟踪,也没有其他任何东西可以告诉我代码在哪里发生-根据我得到的数目以及它们何时发生,我强烈怀疑它在(每10个)内部发生秒)对reader.getOrdinal(fieldName)
的调用中的TimedEvent出错。
不过,我很想证明/证明这一点。
应用程序不会在那里死,所以给我的印象是这是在try / catch / finally块内发生的...但是我的catch块都没有输出这样的消息。如果它在我的捕获块之一中,那么我也会期望其他输出,但我没有得到。我想它可能与我的任何代码都不相关(因此,没有stacktrace显示对其进行调用),而我恰好正坐在旁边,看到CLR内部出现问题。
如果重要的话,这些调用是尝试从古老的MSAccess数据库中读取数据。如果我认为有帮助的话,我会发布代码。
我是一位经验丰富的程序员,尽管WPF不是我的主要专长,而且我还没有遇到可以提供此类无用调试信息的异常。我的目标是了解发生这种情况的含义以及如何确定错误发生的位置。
编辑:
发现它在try块中发生。为什么会为捕获的异常生成消息?!?
代码紧随其后。
if (t != null && t.CurrentBoard != 0) // If Game isn't Over
{
int cb = t.CurrentBoard;
int cr = t.CurrentRound;
try
{
THIS CALL RIGHT HERE
col = reader.GetOrdinal(cb.ToString()); // exception if current board score doesn't exist
}
catch (IndexOutOfRangeException)
{
col = -1;
}
if (col != -1 && !reader.IsDBNull(col) && reader.GetValue(col) != DBNull.Value)
{
// If a score for the current board has been submitted