Возобновить выполнение программы после обработки необработанного исключения - PullRequest
0 голосов
/ 01 июля 2010

Вопрос: я ловлю вообще необработанные исключения с AddHandler System.AppDomain.CurrentDomain.UnhandledException, AddressOf OnUnhandledException

Проблема теперь в том, что с этим обработчиком исключений

Public Sub OnUnhandledException(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs)
    Console.WriteLine(e.ExceptionObject.ToString())
    Console.WriteLine("Press Enter to continue")
    Console.ReadLine()
    'Environment.Exit(1)
End Sub

выполнение программы все равно выдает исключение, если я не выйду из программы.
Теперь я хочу узнать, как я могу изменить это поведение на «возобновить по ошибке дальше»? Возможно ли это вообще?

    <STAThread()> _
Public Sub Main(ByVal argv As String())
    'For i As Integer = 0 To argv.Length - 1 Step 1
    'Console.WriteLine("Argument {0}: {1}", i, argv(i))
    'Next i

    AddHandler System.AppDomain.CurrentDomain.UnhandledException, AddressOf OnUnhandledException

    Throw New Exception("Test")
    Console.WriteLine("Continue")
End sub

1 Ответ

4 голосов
/ 01 июля 2010

Если вы хотите что-то сделать, кроме быстрого входа в систему или предупреждения пользователя об исключении до выхода из программы, вам необходимо обработать исключение, как правило, с помощью блока try/catch.Исключения должны быть обработаны как можно скорее, чтобы принять реальное решение о том, как реагировать.UnhandledException может показаться, что это было бы отличным местом для централизации всей обработки ваших исключений, но это не является его предназначением, и было бы очень сложно, если бы пришлось обрабатывать все исключения, возникающие в любом месте приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...