Поймать непойманное

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

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

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Поймать непойманное

Сообщение MIT » 01.12.2008 (Пн) 20:55

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

Зачем это надо? Применений можно много придумать, одно из них: убить свою иконку в трее.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Поймать непойманное

Сообщение iGrok » 01.12.2008 (Пн) 21:45

MIT писал(а):Например, как отловить сообщение "Программа выполнила недопустимую операцию и будет закрыта..."

Никак, если я правильно понимаю, откуда это сообщение появляется.
label:
cli
jmp label

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Поймать непойманное

Сообщение MIT » 01.12.2008 (Пн) 22:24

А
iGrok писал(а):откуда это сообщение появляется
:?:


________________
added
У меня такое представление, что второе можно отследить, ведь после такого рода ошибки работу программы скорее всего можно продолжить, а вот с первым наверно проблемно будет, ведь это уже системное (я прав?)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

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

Re: Поймать непойманное

Сообщение Sebas » 01.12.2008 (Пн) 23:55

iGrok писал(а):
MIT писал(а):Например, как отловить сообщение "Программа выполнила недопустимую операцию и будет закрыта..."

Никак, если я правильно понимаю, откуда это сообщение появляется.


Ещё как. Я выкладывал пример перехвата. Сам уже не помню) Года 4 назад)

Хотя в NET я такие не получал никогда)
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Поймать непойманное

Сообщение iGrok » 02.12.2008 (Вт) 0:47

Sebas писал(а):
iGrok писал(а):
MIT писал(а):Например, как отловить сообщение "Программа выполнила недопустимую операцию и будет закрыта..."

Никак, если я правильно понимаю, откуда это сообщение появляется.


Ещё как. Я выкладывал пример перехвата. Сам уже не помню) Года 4 назад)

Хотя в NET я такие не получал никогда)

Хы. ))
Значит, я не правильно понимаю, откуда это сообщение появляется. )))
label:
cli
jmp label

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Поймать непойманное

Сообщение Joo » 02.12.2008 (Вт) 8:36

В .NET у меня выходили такие, достаточно найти это место и взять в блок Try
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

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

Re: Поймать непойманное

Сообщение Sebas » 02.12.2008 (Вт) 10:33

Scarabey писал(а):В .NET у меня выходили такие, достаточно найти это место и взять в блок Try


не Достаточно, точнее если это ошибка NET - то достаточна. А если идёт ошибка защиты Windows(повреждение памяти итд.)
Нужно устанавливать свой обработчик. Но, как правило, после таких перехватов приложение в 95 % случаев корректно перестаёт работать. Цель одна-корректно сохранить данные и тихо уйти)
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Поймать непойманное

Сообщение Денис » 02.12.2008 (Вт) 10:37

А еще, исключительно как пользователя, радует, когда в программе этот вопрос решен по типу офиса. При сбое запускается собственный отладчик, подготавливает отчет, если необходимо, убивает повисшую программу и перезапускает ее (опционально - с восстановлением рабочих данных)
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Поймать непойманное

Сообщение Joo » 02.12.2008 (Вт) 11:29

Sebas писал(а):не Достаточно, точнее если это ошибка NET - то достаточна. А если идёт ошибка защиты Windows(повреждение памяти итд.)
Нужно устанавливать свой обработчик. Но, как правило, после таких перехватов приложение в 95 % случаев корректно перестаёт работать. Цель одна-корректно сохранить данные и тихо уйти)


Ну тогда без бубна не обойтись ))
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

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

Re: Поймать непойманное

Сообщение Sebas » 02.12.2008 (Вт) 11:38

Денис писал(а):А еще, исключительно как пользователя, радует, когда в программе этот вопрос решен по типу офиса. При сбое запускается собственный отладчик, подготавливает отчет, если необходимо, убивает повисшую программу и перезапускает ее (опционально - с восстановлением рабочих данных)


Ну, да. Это вопрос реализации логики в обработчике уже) Лучше делать в другом процессе. Для таких целей как раз удобен ActiveX.exe, как ни странно)
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Поймать непойманное

Сообщение MIT » 02.12.2008 (Вт) 13:17

Денис писал(а):без бубна не обойтись

Исходники бубна в студию! :D
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Поймать непойманное

Сообщение Joo » 02.12.2008 (Вт) 13:21

MIT писал(а):
Денис писал(а):без бубна не обойтись

Исходники бубна в студию! :D


:D :D :D :D
Бубен: http://www.ellf.ru/2007/09/20/delaem-adminskijj-buben-5-fototekst.html
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

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

Re: Поймать непойманное

Сообщение Sebas » 02.12.2008 (Вт) 13:54

- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Поймать непойманное

Сообщение MIT » 02.12.2008 (Вт) 16:29

Scarabey писал(а):Бубен: http://www.ellf.ru/2007/09/20/delaem-ad ... tekst.html
Улыбнуло :D

Sebas писал(а):viewtopic.php?f=1&t=8455&start=0&st=0&sk=t&sd=a&hilit=unhandled

Спс. Щас буду разбираться...
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш


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

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

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

    TopList