Что лучшая практика должна обработать все Исключения в приложении WPF?

Там какой-либо путь состоит в том, чтобы обработать все Ошибочные Исключения и катастрофические отказы в приложении WPF?

Я знаю о DispatcherUnhandledException, но это обрабатывает только исключения в потоке UI, не так ли?

Существует ли способ поймать и зарегистрировать все исключения в других потоках и ошибках привязки также?

10
задан ΩmegaMan 1 October 2019 в 13:19
поделиться

3 ответа

Имейте в виду, что Microsoft не рекомендует перехватывать все исключения, вместо этого они рекомендуют перехватывать только те исключения, которые вам известны (или которые могут произойти в каком-то месте). Более того, если вы хотите получить логотип «Certified for Microsoft [Windows | Vista]», вы не должны перехватывать неизвестные исключения, и такие исключения должны поступать в Wer .

3
ответ дан 3 December 2019 в 20:43
поделиться
AppDomain.CurrentDomain.UnhandledException

Перехватывает любые необработанные исключения для текущего потока. Вот как мы обрабатываем это в нашем приложении.

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

Однако я считаю, что вы не захотите рассматривать ошибки привязки как необработанные, поскольку они в основном исправимы и должны быть исправлены как можно лучше перед каждым выпуском. Вы можете изменить Debug> Exeptions в Visual Studio, чтобы он выбрасывал BindingFailure для получения более конкретной информации.

10
ответ дан 3 December 2019 в 20:43
поделиться

Да, есть 3 места:

  1. поместите Application.Run () в попробуйте ... catch
  2. DispatcherUnhandledException
  3. AppDomain.CurrentDomain.UnhandledException

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

Служба на вашем сервере должна ответить либо «спасибо за отправку отчета об ошибке», либо «проблема уже устранена в следующей версии. пожалуйста, обновите "

4
ответ дан 3 December 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: