| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Обработка исключений |
| Автор: devmstr 31.12.2004, 10:36 |
| Как перехватить все исключения в определенном блоке и уничтожить их. P.S. С Новым Годом! |
| Автор: Bes 31.12.2004, 10:40 |
| :-) Поставить в самом начале блока трай в самом конце ексепт енд и все будет или работать или не работать. Не совсем понял вопроса. |
| Автор: devmstr 31.12.2004, 23:02 |
| Но сообщения об ошибках все равно будут выводится! |
| Автор: <Spawn> 1.1.2005, 00:35 | ||
Разумеется, если запускать программу из Дельфи с включенной опцией Debugger Options > Language Exceptions > Stop on Delphi Exceptions. Запускай прогу либо вне среды разработки, либо отключи вышеуказаную опцию. |
| Автор: asdf 1.1.2005, 01:45 |
| deleted |
| Автор: Bes 10.1.2005, 09:46 | ||
2magician:
Только при отладке. |
| Автор: Cetus 10.1.2005, 11:02 |
| Можно сделать таким образом: procedure TForm1.FormCreate(Sender: TObject); begin Application.OnException := AppException; end; procedure TForm1.AppException(Sender: TObject; E: Exception); begin // do nothing or something showmessage('exception was destroyed'); end; |
| Автор: Akella 10.1.2005, 12:06 |
| try код, который может выхвать исключения except //сюда ничего не пишешь end; !!! Обрати внимание, что при запуске приложения в среде Delphi все равно исключения буду "всплывать". Я в таких случаях вывожу ярлык на рабочий стол. |
| Автор: z-END 10.1.2005, 12:22 |
| dsergey а можно просто это отключить в самих Дельфях: Tools->Debugger Options->Language Exceptions->Stop on Delphi Exceptions (убрать галочку) |
| Автор: tcomponent 11.1.2005, 10:23 |
| либо так : через applicatyionevents при этом сохранится лог с ошибками procedure Tmainform.ApplicationEvents1Exception(Sender: TObject; E: Exception); var filename:string; logfile:textfile; begin // сохранение лога с ошибками filename:=changefileext('Error','.log'); assignfile(logfile,filename); if FileExists(filename)then append(logfile) else rewrite(logfile); writeln(logfile,datetimetostr(now)+':'+e.message); closefile(logfile); end; Добавлено @ 10:25 в этом методе подавляютсЯ сообщения об еррорах |