Перехват необработанных ошибок

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Перехват необработанных ошибок

Сообщение areh » 04.01.2005 (Вт) 4:51

Всем привет, дорабатывая одну из программок, наткнулся в MSDN'е на правильный способ перехвата всех необработанных ошибок, собственно говоря вот:

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...

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

такой вопрос, это я чего-то не понял? или что-то тут всётаки не так?

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 06.01.2005 (Чт) 22:57

По опыту из Vb6, в обработчике надо тоже по ошибке вывалиться..

Ну а если arg.ExitApplication = False?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 07.01.2005 (Пт) 0:46

Sebas, плиз, немного поподробней...

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Сообщение Ronin » 07.01.2005 (Пт) 3:42

Попробуй разобраться в безопасности (Security) приложения. Там это проскакивало...
С уважением,
Игорь Шувалов aka Ronin

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Сообщение Ronin » 10.01.2005 (Пн) 0:00

Все ясно... При отладке приложения в Visual Basic .NET исключения UnhandledException не генерируются. А при запуске приложения вне среды, будет все в порядке
С уважением,
Игорь Шувалов aka Ronin


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

    TopList