Как отловить необработанные исключения в пользовательских элементах управления - PullRequest
0 голосов
/ 05 января 2012

Есть ли что-нибудь похожее на MyApplication_UnhandledException для пользовательского элемента управления в VB? Я хотел бы иметь центральную точку, где можно отлавливать все необработанные исключения пользовательского элемента управления, не передавая исключение в приложение, которое использует пользовательский элемент управления.

Я сделал некоторый тест, подняв исключение в методе моего пользовательского элемента управления, где нет кода try / catch (конечно, в настоящем проекте все методы имеют блок try / catch). Исключение было обнаружено событием MyApplication_UnhandledException приложения, использующего пользовательский элемент управления. Но это слишком «далеко» от точки, где происходит исключение, и в худшем случае пользователь должен перезапустить приложение.

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

Есть предложения? Спасибо.

Редактировать: я забыл сказать, что я говорю о WinForm

Ответы [ 2 ]

1 голос
/ 05 января 2012

Нет, действительно нет.Существует обработчик исключений для потоков форм, но он также глобален (т. Е. Участвуют все формы).

Ваш единственный реальный вариант - добавлять соответствующие блоки try / catch повсюду.*

0 голосов
/ 05 января 2012

Не является ли InnerException этого исключения нулевым?Иногда он опускается на несколько уровней, но вы можете рекурсивно выполнять итерации, пока не найдете внутреннее исключение InnerException и не зарегистрируете ErrorMessage & StackTrace.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...