Создание глобального обработчика исключений для Visual Studio 2010 VsPackage

В предыдущих версиях Visual Studio существовала единственная точка входа в расширение (точнее, надстройку) — метод OnConnect. Оттуда можно было выполнять все операции Visual Studio, такие как добавление пунктов меню и настройка глобального обработчика исключений для изящной обработки необработанных исключений.

В VsPackage Visual Studio 2010 все работает иначе — многие части приложения (например, IWpfTextView ) составлены MEF и загружаются без явного контроля пакета, что делает обработку любых исключений, исходящих от них, очень сложной.

Как я могу эффективно реализовать глобальный обработчик (некритических) исключений в своем VsPackage, не заключая явно все такие компоненты в собственный try..catch? Опять же, цель состоит в том, чтобы иметь что-то вроде диалогового окна исключений ReSharper, где он может обрабатывать глобальные исключения без сбоя Visual Studio.


person Igal Tabachnik    schedule 12.06.2011    source источник
comment
Хм, чувак. Я только что написал письмо Елисею, в котором задаю почти тот же вопрос. Дух.   -  person Restuta    schedule 16.06.2011


Ответы (1)


Я изучил эту тему, прочитав официальный форум VsExtensibility и согласно это и этот поток, не существует такого единственного места для перехвата всех исключений. Таким образом, типичным решением будет везде использовать try... catch.

Я предлагаю использовать одну из сред АОП, такую ​​как PostSharp, чтобы выполнить это с атрибутами, чтобы исключить тонны дрянного дублированного кода, единственной целью которого является обработка необработанных исключений.

person Restuta    schedule 16.06.2011