![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка исключительных ситуаций
N © (2006-06-16 14:00:00)В общем, такая ситуация: в цикле обрабатываются данные из базы, иногда (когда встречаются имена, которые уже есть в базе) возникает исключительная ситуация, а после нее обработка прекращается.
Можно ли отключить опцию Stop on Delphi Exceptions и пользоваться вот такой конструкцией:
procedure TForm1.MyExcept(Sender:TObject; E:Exception);
begin
if E is EOLEException then
MessageDlg('Исключение'+E.Message, mtInformation, [mbOk], 0)
else begin
raise E;
Abort;
end;
end;
pocedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnException := MyExcept;
end;
К каким последствиям может привести отключение опции Stop on Delphi Exceptions ?
Пожалуйста, ответьте, если кто-то знает.
Desdechado (2006-06-16 16:24:00) [1]а где, интерено, в моем примере аборт?
N (2006-06-16 16:11:00) [2]Угу. И в цикле тоже потом работает. Abort надо было убрать )))
Всем спасибо.
Desdechado (2006-06-16 15:27:00) [3]> То есть непрерываться не получиться?
что значит "не прерываться"?
ошибка возникает - должна быть обработка
а потом, в том же цикле делай дальше
если, конечно, ты внимательно читаешь ответы
Amoeba (2006-06-16 14:14:00) [4]
> К каким последствиям может привести отключение опции Stop
> on Delphi Exceptions ?
Ни к каким не приведет, если в смысле работоспособности программы вне среды Delphi. Эта опция затрагивает лишь реакцию отладчика на исключения.
N (2006-06-16 14:08:00) [5]То есть непрерываться не получиться?
Desdechado (2006-06-16 14:06:00) [6]я бы не мудрил с глобальным обработчиком, а написал в нужном месте кода
начало цикла
try
запись в БД
except
запись ошибки в протокол
end
конец цикла
та опция всего лишь означает, что при запуске программы из дельфи будет или не будет выскакивать ошибка, даже если она потом обрабатывается