Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перехват всех критических ситуаций (ошибок) в приложении [D7, Win95/98, WinXP]


Ландграф Павел ©   (2005-09-12 10:48:00) 

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


ANB   (2005-09-15 10:08:00) [1]


> Ландграф Павел ©   (13.09.05 18:59) [13]
- как я уже писал и правильно заметил товарищ Digitman, поток не спасет. А вот другой процесс - вполне.
Есть идея : создаешь вспомогательную прогу, которая запускает нужное приложение и следит за ним. В случае падения, запускает еще раз. Нужно только отличить нормальное завершение от аварийного падения (можно искать окно об ошибке).  Все имхо, пример писать лениво.


Digitman   (2005-09-14 12:09:00) [2]


> Ландграф Павел ©   (12.09.05 11:26) [2]


> возможно ли в отдельном потоке следить за работой проги,
>  и если в что, реагировать?


нельзя.

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

если так, то поток этот умирает вместе с процессом и "следить" за чем-то там, разумеется, не может.

p.s.


> Нет блин, из-за волшебства


блинкать, саркастичный ты наш, будешь в с пацанами на  посиделках


Ландграф Павел   (2005-09-13 18:59:00) [3]

Нет блин, из-за волшебства...


Lamer@fools.ua   (2005-09-13 17:03:00) [4]

>> Ландграф мобил=)   (13.09.05 16:49) [11]

Значит, всё-таки, не сама по себе, а из-за драйверов?


Ландграф мобил=)   (2005-09-13 16:49:00) [5]

Я же вроде для одаренных написал что ошибка дров?! Или вы читаете выборочно, тов. Дартц=)


Digitman   (2005-09-13 14:27:00) [6]


> ошибка возникнет сама по себе


сами по себе даже кролики не плодятся


Nick Denry   (2005-09-13 13:20:00) [7]

Так ведь делают некоторые программы так?

Типа МС Word'a?

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


Ландграф Павел   (2005-09-12 20:32:00) [8]

Эх.. короче бесполезно... ладно, всем спасибо)


Fay   (2005-09-12 16:17:00) [9]

2 Ландграф мобил=)   (12.09.05 12:55) [5]
Если, к примеру, валится стек, то ловить что-либо бесполезно. Даже [6] не поможет


Котик Бегемотик   (2005-09-12 14:23:00) [10]

А не проще ли написать маленький *.bat файл

:restart
program.exe
if errorlevel 2 goto restart

а в программе на OnException ловить эту страшную ошибку м выходить по Halt(2).


Ландграф мобил=)   (2005-09-12 12:55:00) [11]

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


Плохиш   (2005-09-12 11:51:00) [12]


> Ландграф Павел ©   (12.09.05 11:26) [2]
> а если ошибка возникнет сама по себе, бывают такие приколы
> в w98/95 ничего не делаешь, прога в памяти, раз - ошибка

Тогда только поставлять бубен с программой.


ANB   (2005-09-12 11:34:00) [13]


> Ландграф Павел ©   (12.09.05 11:26) [2]
- в делфи-приложениях нормально организована обработка исключений по умолчанию. Если таки вылезло такое сообщение, то ошибка больно серьезная. Если у тебя настолько разрушен процесс, что стандартная обработка не справляется, то отдельный поток не поможет, нужен еще один, следящий процесс. Имхо, лучше выяснить причину ошибки и исправить ее.


Ландграф Павел   (2005-09-12 11:26:00) [14]

а если ошибка возникнет сама по себе, бывают такие приколы в w98/95 ничего не делаешь, прога в памяти, раз - ошибка. В этом случае возможно ли в отдельном потоке следить за работой проги, и если в что, реагировать?


Плохиш   (2005-09-12 11:01:00) [15]

Можно, но код писать придётся. См. TApplication.OnException.


Наверх

Титульная страница Поиск, карта сайта Написать письмо