![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Уважаемый
Форумчанин
Регистрация: 04.07.2010
Сообщений: 318
|
![]() Цитата:
Ну On EFilerError - с этим понятно, а почему Halt хуже чем предложенный код? Вроде даже проще...
даешь высокое напряжение
Последний раз редактировалось Vova777; 02.06.2011 в 22:13. |
|
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
В пустом приложении - разницы никакой.
В реальном - разница есть. Потому что у вас могут быть возникать исключение не только в FormCreate, но и в других местах. Вы каждый чих будете в try-except заворачивать? Нет. Поэтому нужно обрабатывать все места в одном - для чего и предназначен механизм обработки исключений. Кроме того, Halt - это слишком жёстко, рубит программу в точке вызова, не позволяя выполниться коду очистки, который выполнялся бы при обычном вызове. Опять же, это не имеет значение в простой программе, где ничего такого просто нет, но в реальных приложениях это может иметь значение. А Application.Terminate - это, наоборот, слишком мягко. Его работа заключается в отправке сообщения о закрытии форме. Но ведь до этого момента приложение будет работать и будет выполнять кучу кода. И снова, это не имеет значение в простой программе (разве что иногда вы можете увидеть "моргание окна").
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
#13 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
В MDI-шных приложениях использую для обработки исключений не обработанных в формах Application.OnException
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#14 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Да вполне нормально.
Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
![]() |
![]() |
![]() |
#15 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
![]()
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
#16 |
Уважаемый
Форумчанин
Регистрация: 04.07.2010
Сообщений: 318
|
![]()
Да, обработка на стадии инициализации. Если файл с конфигурациями не найден, то не запускать приложение. А во время работы программы, она обращается к еще целой куче файлов, но подразумевается, что эти файлы всегда на своем месте: они идут всегда вместе с программой. Их отсутствие я даже не рассматриваю, т.к. это будет являться намеренным их удалением. Как говорится: "От дурака защиты нет".
Не стоит удалять рабочие файлы программы
даешь высокое напряжение
|
![]() |
![]() |
![]() |
#17 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
#18 |
Уважаемый
Форумчанин
Регистрация: 04.07.2010
Сообщений: 318
|
![]()
Не стоит удалять рабочие файлы программы. А так они всегда идут вместе с ней.
даешь высокое напряжение
|
![]() |
![]() |
![]() |
#19 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
чем просто скрываться. пользователь в вашем случае просто удалит приложение. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#20 |
Уважаемый
Форумчанин
Регистрация: 04.07.2010
Сообщений: 318
|
![]()
Да, я согласен. Я тоже подумал, и решил, что все же стоит включить обработку таких моментов. Лучше указать на поврежденный либо отсутствующий файл и предложить переустановить приложение, чем предоставить этот момент пользователю. Так будет намного лучше, когда приложение корректно завершится с указанием причины, нежели будет иметь место аварийный вылет. Ведь удаление файлов может произойти по разным причинам, не зависящим от действий пользователя либо по его вине. Обработка таких исключений должна быть обязательно добавлена.
даешь высокое напряжение
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка исключений | Ckomoroh | Общие вопросы Delphi | 6 | 21.03.2011 08:52 |
обработка исключений | user666 | Помощь студентам | 36 | 27.08.2010 18:00 |
ошибка при закрытии формы после обработки в потоке | furstenberg | Общие вопросы Delphi | 7 | 05.07.2010 12:19 |
Обработка исключений | _-Re@l-_ | Общие вопросы Delphi | 3 | 17.06.2010 08:53 |
WebBrowser и ошибка 404, идея ее обработки | celovec | Работа с сетью в Delphi | 3 | 22.02.2009 19:40 |