Вот мой контекст:Как добавить глобальную обработку исключений в DLL надстройки?
- Я пишу WPF надстройки для приложения.
- Главный поток этого приложения неуправляем.
- Я хочу добавить глобальную систему обработки исключений для этой надстройки для обработки любых необработанных исключений.
Вот что я пытался, но не работает:
- Я не могу добавить примерки поймать блок на мой Application.Run() строки кода. Поскольку я являюсь надстройкой, этот фрагмент кода находится в приложении.
- System.Windows.Forms.Application.ThreadException тоже не работает. Возможно, не существует приложения WinForm. (WPF-хостинг в неуправляемом коде.)
- AppDomain.CurrentDomain.UnhandledException тоже не работает. Потому что, возможно, это обрабатывается самим Приложением. Он просто не вводит мой код.
Таким образом, любые идеи для этой ситуации?
Благодарим за ответ. Вы правы, я не должен добавлять глобальную обработку исключений для этого приложения. Но есть ли способ добавить «глобальную» систему обработки исключений только в область моего добавления - только исключения, которые моя надстройка переместила в эту систему. Добавить блоки try-catch только для моих записей недостаточно, потому что у меня есть куча поведения в моем графическом интерфейсе надстройки. Еще раз спасибо за ваш вопрос. – redjackwong
Вы можете использовать PostSharp для автоматического добавления поведения try-catch ко всем вашим кодовым кодам в свойствах, конвертерах, поведении и пользовательских/пользовательских элементах управления, поэтому это должно охватывать большинство случаев, у меня нет хорошего решения для исключенных исключений чей-то код внутри вашего графического интерфейса – Nir