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

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

Обработка исключений [D7]


HelloWord ©   (2006-07-22 15:11:00) 

Работаю с базой данный Microsoft Acces 2003, есть поле в таблице которое являеться уникальным - это я определил в самой таблице. Если пользователь ввёл значение которое уже существует в этом поле, то генерируеться ошибка, обрабатываю её так

 try
 if DataModule1.DseQuery.Modified then
   DataModule1.DseQuery.Post;
 except
   MessageDlg('Такая уже существует. Измените запись, или нажмите кнопку "Отмена"', mtInformation,[mbOk],0);
   Exit;
 end;  

А если в этом блоке сгенерируеться другая ошибка ? Как определить что сгенерировалась именно эта ошибка ?


Anatoly Podgoretsky   (2006-07-23 11:57:00) [1]

HelloWord   (22.07.06 15:11)  
Странная какая то обработка исключений, получается если я введу недопустимое значение, то в ответ получу, что запись уже существует.


sniknik   (2006-07-22 15:42:00) [2]

а не надо делить, просто выводи сообшение из самой ошибки .
except
  on E: Exception do ... E.Message ...
end;  
оно наиболее точно отображает происходящее (по возможности в руской винде на русском), скрывая его (переводя/и т.д. неважно почему) себе же и пользователям проблемы создаеш (тем кто может разобраться, те кто не может/не хочет те обычно любую выводимую ошибку игнорируют).

хотя это ексепт класса EOleException, у него есть код ошибки (не у всех бывает)... в принципе посмотреть его и разделить конечно можно... но не нужно ИМХО (в руской интерпретации имхо...  это когда "хрен оспориш" ;о)). наверняка что нибудь пропустиш/забудеш/не учтеш в итоге будет либо полная лажа в сообщении либо его вообще не будет.


Johnmen   (2006-07-22 15:25:00) [3]

Здесь рассказано с примерами - try+F1


Наверх

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