Как отловить исключение в программе на Delphi, если в БД оно создано, и возбуждается в процедуре, например, на складе 10 шапок, пользователь пытается взять 11, возбуждается исключение, как красиво показать это сообщение у клиента?
Заранее спасибо.
Исключения
Модератор: kdv
Как вариант, если необходимо обработать исключене возникающее например при редактировании в DBGrid (без явной обработки метода Post), можно использовать
1. Компонент TApplicationEvents, а именно его обработчик OnException.
В него, как видно, передаётся исключение E.
Останется проверить, что это за исключение (от базы или какое-либо другое) и потом проверить E.Message на предмет присутствия в теле текста исключения которое нужно обработать.
Это, на мой взгляд, не лучший способ.
2. У компонета потомка TDataSet который используется (например TIBTable) обрабатывать OnPostError.
3. Или, как обычно,
1. Компонент TApplicationEvents, а именно его обработчик OnException.
Код: Выделить всё
procedure TForm1.ApplicationEvents1Exception(Sender: TObject;
E: Exception);
begin;
// Здесь писать обработку, например:
if E is EDatabaseError then
begin
if E.Message = ....
end
end;
Останется проверить, что это за исключение (от базы или какое-либо другое) и потом проверить E.Message на предмет присутствия в теле текста исключения которое нужно обработать.
Это, на мой взгляд, не лучший способ.
2. У компонета потомка TDataSet который используется (например TIBTable) обрабатывать OnPostError.
3. Или, как обычно,
Код: Выделить всё
...
try
table1.post;
except
on E:EDatabaseError do
begin
if E.Message= .......
end;
end;