![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
try..except
Вячеслав Бессонов © (2006-02-06 11:22:00)Надо бы написать обработчик ошибок для:
opd.Execute;
mm.Lines.LoadFromFile(opd.FileName);
что надо написать в except?
Reindeer Moss Eater (2006-02-06 14:02:00) [1]Например, чтобы по-русски объяснить пользователю, что произошло.
Дефолтный обработчик и делает это по-русски.
Gydvin (2006-02-06 13:46:00) [2]В хорошем коммерческом продукте - безусловно.
Ну может быть, во всяком случае судя по сабжу автору до хорошего коммерческого проекта еще далеко, и безусловно нестоит грузить этими штуками и так каша в голове.
Ega23 (2006-02-06 13:07:00) [3]
> то вобще надо каждую мелочь защищать
В хорошем коммерческом продукте - безусловно.
Это в поделках студенческих такие вещи можно пропустить. Или в каких-то вспомогательных программках "для себя".
Gero (2006-02-06 12:58:00) [4]> Ну если так рассуждать, то вобще надо каждую мелочь защищать
Так оно и есть.
Gydvin (2006-02-06 12:57:00) [5]Не поверишь: помому что при загрузке в Memo может произойти исключение.
Ну если так рассуждать, то вобще надо каждую мелочь защищать, и вместо кода будет галимый обработчик исключений :(. Помоему в этом случае достаточно просто проверять наличий файла во время открытия.
Gero (2006-02-06 12:53:00) [6]> На кой при загрузке в мемо такой обработчик исключений?
Например, чтобы по-русски объяснить пользователю, что произошло.
Reindeer Moss Eater (2006-02-06 12:40:00) [7]> на кой при загрузке в мемо обработчик исключений 8-0
Не поверишь: помому что при загрузке в Memo может произойти исключение.
Я бы вопрос поставил так:
На кой при загрузке в мемо такойобработчик исключений?
Gero (2006-02-06 12:32:00) [8]> на кой при загрузке в мемо обработчик исключений 8-0
Не поверишь: помому что при загрузке в Memo может произойти исключение.
Gydvin (2006-02-06 12:29:00) [9]не пойму а почему бы [5] невоспользоваться!??!?!?? Тем более этот ответ я автору дал в ветке "Сохранение" и на кой при загрузке в мемо обработчик исключений 8-0
Ega23 (2006-02-06 12:12:00) [10]
> А еще разница в том, что если использовать ofFileMustExist,
> диалог не закроется при неверно введенном имени файла.
А это, кстати, не всегда удобно бывает.
В общем спор беспредметный.
Gero (2006-02-06 12:09:00) [11]> Ega23 © (06.02.06 12:06)
А еще разница в том, что если использовать ofFileMustExist, диалог не закроется при неверно введенном имени файла.
Gero (2006-02-06 12:08:00) [12]> Какая разница-то?
Разница в быстроте, время — деньги ;)
Ega23 (2006-02-06 12:06:00) [13]
> Зачем это?
ну поставь ofFileMustExist в свойства. Какая разница-то?
Gero (2006-02-06 12:03:00) [14]
opd.Options := opd.Options + [ofFileMustExist];
if opd.Execute then
try
mm.Lines.LoadFromFile(opd.FileName);
except on E: Exception do
Application.MessageBox(PChar('При попытке чтения файла произошла ошибка.'#13#10#13#10 + E.Message), PChar('Невозожно прочитать файл'), MB_OK or MB_ICONERROR);
end;
Вячеслав Бессонов (2006-02-06 11:59:00) [15]Прощу прощения за свою неопытность и глупость
Gero (2006-02-06 11:57:00) [16]> Ega23 © (06.02.06 11:55)
> if not FileExists(opd.FileName) then
Зачем это?
Ega23 (2006-02-06 11:55:00) [17]
> такой код?
Нет, конечно.
try
if not opd.Execute then Exit;
if not FileExists(opd.FileName) then
begin
MessageBox(Handle,PChar('Ôàéë '+opd.FileName+' - íå ñóùåñòâóåò!'), PChar('Îøèáêà!'), MB_OK or MB_ICONERROR);
Exit;
end;
mm.Lines.LoadFromFile(opd.FileName);
except on E:exception do
MessageBox(Handle,PChar('Программное исключение '+E.Message), PChar('Îøèáêà!'), MB_OK or MB_ICONERROR);
end;
Reindeer Moss Eater (2006-02-06 11:52:00) [18]on EFOpenError do ShowMessage('Нет такого файла!');
Можно подумать, что без этого обработчика пользователь не получит вразумительного сообщения.
umbra (2006-02-06 11:51:00) [19]с помощью
try ... exceptможно так
try
if opd.Execute then
mm.Lines.LoadFromFile(opd.FileName);
except
on EFOpenError do ShowMessage('Нет такого файла!');
end;
но, по-моему, проще вopd.OptionsпоставитьTrueдляopFileMustExist. Тогда о существовании файла будет заботиться диалог
Вячеслав Бессонов (2006-02-06 11:50:00) [20]try
mm.Lines.LoadFromFile(opd.FileName);
except
if not FileExists(opd.FileName) then
begin
MessageBox(Handle,PChar('Ôàéë '+opd.FileName+' - íå ñóùåñòâóåò!'), PChar('Îøèáêà!'), MB_OK or MB_ICONERROR);
Exit;
end;
end;
такой код?