Исключение WPF выбрасывается без трассировки стека - PullRequest
0 голосов
/ 01 декабря 2018

Возникло исключение: System.IndexOutOfRangeException в System.Data.dll

Это то, что я получаю в качестве вывода при отладке моего приложения WPF.Не раз, но больше ничего.

Никаких номеров строк, ни следа стека, ни чего-либо еще, чтобы сказать мне, где это происходит в моем коде. Исходя из того, сколько из них я получаю и когда они происходят, я сильно подозреваю, что это происходит внутри(каждые 10 секунд) TimedEvent в вызове (-ах) на reader.getOrdinal(fieldName) пошло наперекосяк.

Хотя я бы хотел доказать / опровергнуть это.

Приложение там не умирает, поэтомуу меня создается впечатление, что это происходит внутри блока try / catch / finally ... но ни один из моих блоков catch не выводит подобное сообщение.Если бы это было в одном из моих блоков catch, я бы также ожидал другой вывод, который я не получаю.Я предполагаю, что это может быть не связано с любым моим кодом (отсюда нет стековой трассировки, показывающей обратный вызов), и я просто получаю место на ринге, чтобы увидеть, что что-то идет не так внутри 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...