Текущий архив: 2006.02.26;
Скачать: CL | DM;
Вниз
try..except Найти похожие ветки
← →
Вячеслав Бессонов (2006-02-06 11:22) [0]Надо бы написать обработчик ошибок для:
opd.Execute;
mm.Lines.LoadFromFile(opd.FileName);
что надо написать в except?
← →
msguns © (2006-02-06 11:25) [1]?
Наверное, что-то типа
"Не удается найти сохраненный ранее текст"
← →
umbra © (2006-02-06 11:30) [2]
> что надо написать в except?
а какие ошибки ожидаются?
← →
Вячеслав Бессонов (2006-02-06 11:32) [3]ожидается, что пользователь укажет несуществуещее имя фала.
← →
Gero © (2006-02-06 11:36) [4]Вот это и напиши.
← →
Ega23 © (2006-02-06 11:39) [5]
> ожидается, что пользователь укажет несуществуещее имя фала.
Ну на такое я бы сделал
if not FileExists(FileName) then
begin
MessageBox(Handle, PChar("Файл "+FileName+" - не существует!"), PChar("Ошибка!"), MB_OK or MB_ICONERROR);
Exit;
end;
А в except может много чего другого придти. Например, файл закрыт для доступа.
← →
Вячеслав Бессонов (2006-02-06 11:44) [6]Попробуем
← →
Gero © (2006-02-06 11:49) [7]А вобще в TOpenDialog есть такая опция ofFileMustExist.
← →
Вячеслав Бессонов (2006-02-06 11:50) [8]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;
такой код?
← →
umbra © (2006-02-06 11:51) [9]с помощью
try ... except
можно такtry
if opd.Execute then
mm.Lines.LoadFromFile(opd.FileName);
except
on EFOpenError do ShowMessage("Нет такого файла!");
end;
но, по-моему, проще вopd.Options
поставитьTrue
дляopFileMustExist
. Тогда о существовании файла будет заботиться диалог
← →
Reindeer Moss Eater © (2006-02-06 11:52) [10]on EFOpenError do ShowMessage("Нет такого файла!");
Можно подумать, что без этого обработчика пользователь не получит вразумительного сообщения.
← →
Ega23 © (2006-02-06 11:55) [11]
> такой код?
Нет, конечно.
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;
← →
Gero © (2006-02-06 11:57) [12]> Ega23 © (06.02.06 11:55)
> if not FileExists(opd.FileName) then
Зачем это?
← →
Вячеслав Бессонов (2006-02-06 11:59) [13]Прощу прощения за свою неопытность и глупость
← →
Gero © (2006-02-06 12:03) [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;
← →
Ega23 © (2006-02-06 12:06) [15]
> Зачем это?
ну поставь ofFileMustExist в свойства. Какая разница-то?
← →
Gero © (2006-02-06 12:08) [16]> Какая разница-то?
Разница в быстроте, время — деньги ;)
← →
Gero © (2006-02-06 12:09) [17]> Ega23 © (06.02.06 12:06)
А еще разница в том, что если использовать ofFileMustExist, диалог не закроется при неверно введенном имени файла.
← →
Ega23 © (2006-02-06 12:12) [18]
> А еще разница в том, что если использовать ofFileMustExist,
> диалог не закроется при неверно введенном имени файла.
А это, кстати, не всегда удобно бывает.
В общем спор беспредметный.
← →
Gydvin © (2006-02-06 12:29) [19]не пойму а почему бы [5] невоспользоваться!??!?!?? Тем более этот ответ я автору дал в ветке "Сохранение" и на кой при загрузке в мемо обработчик исключений 8-0
← →
Gero © (2006-02-06 12:32) [20]> на кой при загрузке в мемо обработчик исключений 8-0
Не поверишь: помому что при загрузке в Memo может произойти исключение.
← →
Reindeer Moss Eater © (2006-02-06 12:40) [21]> на кой при загрузке в мемо обработчик исключений 8-0
Не поверишь: помому что при загрузке в Memo может произойти исключение.
Я бы вопрос поставил так:
На кой при загрузке в мемо такой обработчик исключений?
← →
Gero © (2006-02-06 12:53) [22]> На кой при загрузке в мемо такой обработчик исключений?
Например, чтобы по-русски объяснить пользователю, что произошло.
← →
Gydvin © (2006-02-06 12:57) [23]Не поверишь: помому что при загрузке в Memo может произойти исключение.
Ну если так рассуждать, то вобще надо каждую мелочь защищать, и вместо кода будет галимый обработчик исключений :(. Помоему в этом случае достаточно просто проверять наличий файла во время открытия.
← →
Gero © (2006-02-06 12:58) [24]> Ну если так рассуждать, то вобще надо каждую мелочь защищать
Так оно и есть.
← →
Ega23 © (2006-02-06 13:07) [25]
> то вобще надо каждую мелочь защищать
В хорошем коммерческом продукте - безусловно.
Это в поделках студенческих такие вещи можно пропустить. Или в каких-то вспомогательных программках "для себя".
← →
Gydvin © (2006-02-06 13:46) [26]В хорошем коммерческом продукте - безусловно.
Ну может быть, во всяком случае судя по сабжу автору до хорошего коммерческого проекта еще далеко, и безусловно нестоит грузить этими штуками и так каша в голове.
← →
Reindeer Moss Eater © (2006-02-06 14:02) [27]Например, чтобы по-русски объяснить пользователю, что произошло.
Дефолтный обработчик и делает это по-русски.
Страницы: 1 вся ветка
Текущий архив: 2006.02.26;
Скачать: CL | DM;
Память: 0.53 MB
Время: 0.045 c