Как мне зарегистрировать исключение, если я не знаю, где оно может появиться? - PullRequest
2 голосов
/ 04 сентября 2010

У нас есть приложение WPF, которое мы развернули для клиента. Однако приложение случайно приводит к аварийному завершению работы с диалоговым окном «непредвиденная ошибка» на компьютере клиента. Нам нужно иметь возможность видеть сообщение об исключении и, желательно, трассировку стека, но поскольку оно происходит случайным образом, мы не знаем, куда нам следует помещать проверки try / catch, чтобы мы могли их регистрировать. Мы используем NLog для регистрации. У меня вопрос: есть ли у нас способ настроить NLog для перехвата всех исключений, не обработанных нашим кодом, или каким-либо другим способом сделать это?

1 Ответ

1 голос
/ 04 сентября 2010

Почему бы не поместить глобальный блок try / catch, охватывающий весь код?

Поскольку это приложение WPF, могут потребоваться некоторые изменения.Вместо того, чтобы позволить WPF автоматически открывать главное окно, удалите файл App.xaml и откройте окно с помощью кода из начальной точки приложения (внутри try / catch).

Обратите внимание, что это не очень хорошая практика (например,как правило, это плохо для всех исключений), но это может быть временный обходной путь, чтобы найти, где происходит сбой.


Редактировать: я также приглашаю вас прочитать ответ на связанный вопрос о глобальных блоках try / catch в WPF.Есть некоторые полезные вещи, которые я не знал, когда писал свой ответ.

...