MSDN писал(а):Sub Main()
Dim currentDomain As AppDomain = AppDomain.CurrentDomain
AddHandler currentDomain.UnhandledException, AddressOf MyHandler
Try
Throw New Exception("1")
Catch e As Exception
Console.WriteLine("Catch clause caught : " + e.Message)
End Try
Throw New Exception("2")
' Output:
' Catch clause caught : 1
' MyHandler caught : 2
End Sub 'Main
Sub MyHandler(sender As Object, args As UnhandledExceptionEventArgs)
Dim e As Exception = DirectCast(args.ExceptionObject, Exception)
Console.WriteLine("MyHandler caught : " + e.Message)
End Sub 'MyUnhandledExceptionEventHandler
правда есть одно НО: этот пример, полностью скопированный из MSDN, не совсем работает... либо я не так понял, зачем он нуже. результат выполнения такой:
1. вылазит сообщение об ошибке (как если у нас ничего и не перехватывается)
2. возникает событие, которое обрабатывается процедурой MyHandler...
мне кажется, что вся задумка, по поводу обработки ошибок заключалась в том, чтобы пользователь не видел никаких системных сообщений об ошибках (чтобы программист мог все ошибки обрабатывать, и если надо выдавать собственные сообщения об ошибках)...
такой вопрос, это я чего-то не понял? или что-то тут всётаки не так?