VB. NET ошибка перехвата для ВСЕГО приложения - PullRequest
0 голосов
/ 27 мая 2020

Нужна помощь с некоторыми VB. net кодирование (НЕ C или c ++) Пока что я использую этот код, чтобы отловить ошибки для определенных c строк кодов:

Try
    bla bla bla                   
Catch ex As Exception
    msbox("Error: " & ex.message)
End Try

Но иногда приложение останавливается из-за ошибки, где у меня нет подвоха; как мне в таких случаях, как этот вызов, при указании c Sub (поймать ошибку) для ЛЮБОЙ ДРУГОЙ ошибки во ВСЕМ приложении, где Sub будет отображать сообщение об ошибке (где я также планирую отправить себе электронное письмо в эта подпрограмма, уведомляющая меня о том, что приложение остановлено)?

Я не уверен, будет ли он конфликтовать со всеми текущими командами Try / Catch в моем приложении, но я бы предпочел обнаруживать ошибку только в коде, который в настоящее время не в обработчике Catch.

Большое вам спасибо!

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Эта функциональность встроена в структуру приложений VB, которая включена по умолчанию в приложениях WinForms. Откройте страницу Application свойств проекта, нажмите кнопку View Application Events и добавьте обработчик для события UnhandledException, используя панель навигации в верхней части окна кода. Готово!

Платформа приложений VB скрывает некоторые сложности приложений, которые вы должны реализовать самостоятельно в C#. Он включает в себя событие Startup, которое вы можете обрабатывать вместо добавления кода в метод Main, событие StartupNextInstance для поддержки приложений с одним экземпляром с аргументами командной строки, многопоточную функциональность экрана spla sh и многое другое.

0 голосов
/ 27 мая 2020

Что касается вашей идеи отправки по электронной почте, просто обязательно добавьте уведомление о конфиденциальности, прежде чем автоматически отправлять себе что-либо в своих приложениях; это может быть большим яблоком раздора для пользователей, и если проницательный поймает это, молча позвонив домой, ваш представитель пропал.

Что касается глобального обработчика ошибок, посмотрите здесь:

https://www.dotnetcurry.com/patterns-practices/1364/error-handling-dotnet-projects

...