Создание глобального обработчика исключений для Visual Studio 2010 VsPackage - PullRequest
14 голосов
/ 12 июня 2011

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

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

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

1 Ответ

4 голосов
/ 16 июня 2011

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

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

...