2012-05-09 3 views
4

Я сделал приложение в VB.Net. Но некоторые пользователи сталкиваются с сбоем при запуске. Это «Проблема заставила эту программу работать правильно» только с одной кнопкой «Закрыть программу». Поскольку в приложении загружается много вещей, можно ли узнать, что вызвало проблему?Ловля событий сбоя приложений

ответ

5

Если в свойствах вашего проекта включена «Рамка приложений», нажмите кнопку «Просмотреть приложения» на странице свойств проекта «Приложение». Затем добавить обработчик событий:

Partial Friend Class MyApplication 
    Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException 
     ' ... 
    End Sub 
End Class 

Если вы не используете рамки приложения, вы должны положить попробовать поймать блок вокруг всего Main метода. Однако это приведет только к исключениям, которые происходят в основном потоке. Если ваше приложение многопоточное, вы можете обрабатывать исключения из всех потоков, создавая метод, как это:

Public Sub UnhandledExceptionHandler(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs) 
    ' ... 
End Sub 

, а затем приложите его к UnhandledException случае вашего текущего домена, например:

AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf UnhandledExceptionHandler 

Этот обработчик событий будет вызван для всех необработанных исключений из любого места в вашем домене, независимо от текущего потока.

+0

Большое спасибо SteveDog. Теперь все равно, чтобы заставить исключение без ошибок увидеть ошибку? – theRonnie

+0

Я не уверен, в чем ваш вопрос. Если выбрано исключение и оно необработанно, тогда обработчик MyApplication_UnhandledException должен его получить. Я считаю, что возможно, что у вас могут быть необработанные исключения в других потоках или что-то, что не будет обработано этим обработчиком исключений, но все, что бросается в поток пользовательского интерфейса, должно быть автоматически захвачено этим обработчиком. –

Смежные вопросы