![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка исключений [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