Поместите этот код где-нибудь в решение VSTO на уровне документа Word вне ThisDocument_Startup (создать кнопку на ленте с событием щелчка):
int zero = 0;
int divideByZero = 10 / zero;
Запуск без отладки (Ctrl + F5), Результат: исключение проглочено, остальная часть кода завершается с ошибкой.
Исключение будет видимым, если оно помещено в ThisDocument_Startup, но больше нигде не отображается. Форумы Microsoft VSTO и документация MSDN, кажется, чувствуют, что Try ... Catch следует использовать - что не так уж важно для известных неизвестных. А как насчет неизвестных неизвестных?
Кажется, что все распространенные способы обработки необработанных исключений для управляемого кода не работают, возможно, из-за того, что VSTO использует управляемый код с Office COM Interops:
//These don't work
AppDomain.CurrentDomain.UnhandledException ...
System.Windows.Forms.Application.ThreadException ...
Я читал сообщения о поиске и устранении неисправностей кода VSTO, который, кажется, всегда приводит к установке Try ... Поймать практически все!
Есть ли лучший способ обработки известных и неизвестных (теперь невидимых и тихих!) Сбоев?