Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

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