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

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

try..except


Страницы:   1 2

Вячеслав Бессонов ©   (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;
такой код?


Страницы:   1 2

Наверх

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