перехватывать необработанные исключения в надстройках .NET Excel (XLL)? - PullRequest
5 голосов
/ 22 сентября 2010

Я пытаюсь подключить необработанный обработчик исключений для .NET Excel надстройки.Проблема в том, что обработчик исключений никогда не вызывается.

AppDomain.CurrentDomain.UnhandledException не работает - никогда не запускает событие.

Application.Current.DispatcherUnhandledException не может использоваться, так как Application является нулем в коде расширения Excel.

как вы тогда подключаете обработчик необработанных исключений?

Ответы [ 2 ]

3 голосов
/ 22 сентября 2010

Возможно, вы не сможете, поскольку приложение на самом деле является неуправляемым приложением.Возможно, вам придется просто поставить блоки try / catch вокруг облупленных областей.

0 голосов
/ 31 мая 2018

Из пользовательской функции в вашем XLL вы должны перехватывать исключения. Вы должны использовать обработчик catch, чтобы поймать все. Это запах кода, но убедитесь, что любая запись в журнал или другая обработка ошибки в перехвате не генерируются, обернув это пустым обработчиком перехвата.

То же из потока пользовательского интерфейса для любых обработчиков событий ленты.

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

Dispatcher.CurrentDispatcher.UnhandledException + = CurrentDispatcher_UnhandledException;

Excel в лучшем случае привередлива, поэтому относись к ней как к dottie

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