Я создаю надстройку для Solidworks EPDM (example from API help). Это проект библиотеки классов (DLL), который добавляется в EPDM и позволяет добавлять в программу некоторые пользовательские функции.Как регистрировать необработанные исключения в проекте библиотеки классов vb.net?
Я хочу добавить журнал для необработанных ошибок, так что, когда исключение вызвано моей надстройкой (в отличие от самой программы Solidworks EPDM), я могу получить уведомление об этом и попытаться ее исправить.
Я совершенно новичок во всем этом (и все это я имею в виду VB.NET как язык, программируя что-то другое, кроме макросов в VBA, структурированную обработку исключений, регистрацию ошибок и т. Д.), И я пытаюсь чтобы следовать MSDN How To: Log Exceptions in Visual Basic, но инструкции для регистрации исключенных исключений не кажутся применимыми к проектам библиотеки классов.
В частности, я не знаю, как пройти шаг 3:
Для входа необработанного исключения
1. Выберите проект в обозревателе решений . На меню , выберите Свойства.
2. Нажмите на ссылку .
3. Нажмите кнопку Просмотр приложений, чтобы открыть Редактор кода.
Открывает файл ApplicationEvents.vb.
Кнопка View Application Events
неактивна для проектов библиотеки классов.
Итак, есть еще один способ добавить протоколирование необработанных исключений в библиотеках классов проектов? Или, еще один способ доступа к файлу ApplicationEvents.vb
для объектов библиотеки классов? Я тоже пробовал искать, и еще не нашел решение, которое позволило бы мне регистрировать необработанных исключений.
В этом сценарии нет необработанных исключений, программа-хозяин получит их. Он обязательно отобразит * что-то *, но редко будет достаточно хорошим, чтобы помочь вам диагностировать сбой. Поместите Try/Catch в свой метод DoCmd(), не забудьте бросить его снова, чтобы хозяин знал, что это пошло не так. –
@HansPassant - так что вы рекомендуете попробовать catch с общим «catch ex as exception», запишите его и повторно бросите? – CBRF23
«Лучшая» практика должна заключаться в том, чтобы ваш код знал о * любом * исключении, которое может произойти внутри него; либо обрабатывать ее внутри вашей надстройки, если она может/должна, или документировать ее, чтобы вызывающий код мог ее обработать, если нет. Наличие глобального «try-catch» может помочь на этапах разработки и тестирования, но не для реальных сценариев; как только вы получите все исключения, которые могут произойти, вы должны избавиться от него. –