![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глобальная обработка ошибок приложения [D6, WinXP]
oleg_SYS © (2005-02-26 02:44:00)Есть программа, в которой очень много процедур и функций. Чтобы не ставить везде try..except, я решил использовать глобальную обработку ошибок Application.OnException. Но возникла проблема: при исключениях код процедур прерывается. Как мне реализовать такой вариант с помощью Application.OnException:
try
операция 1;
операция 2;
…
операция n;
except
{ничего не делаем}
end;
В данном примере при возникновении исключения в операции n операция n + 1 все равно будет выполняться.
kaZaNoVa (2005-02-26 21:35:00) [1]Anatoly Podgoretsky © (26.02.05 16:35) [11]
COOL!
Anatoly Podgoretsky (2005-02-26 16:35:00) [2]А вам шашечки или ехать?
oleg_SYS (2005-02-26 16:22:00) [3]novice_man, ну а если у меня таких процедур 50 что мне везде ставить try.. except?
novice_man (2005-02-26 14:11:00) [4]
> oleg_SYS © (26.02.05 13:50) [7]
Ну и .....
Anatoly Podgoretsky (2005-02-26 13:59:00) [5]Ну это мы знаем.
oleg_SYS (2005-02-26 13:50:00) [6]Прошу прощения, я не правильно выразился. Вот пример, при котором во время возникновения исключений код выполняется до конца:
procedure TForm1.Button1Click(Sender: TObject);
begin
{операция 1}
try
StrToInt('число');
except
end;
{операция 2}
ShowMessage('Операция 2');
{операция 3}
try
StrToFloat('число');
except
end;
{операция 4}
ShowMessage('Операция 4');
end;
TUser (2005-02-26 11:18:00) [7]OnException не отменяет try-блоков, а лишь дополняет их и усиливает.
Anatoly Podgoretsky (2005-02-26 10:18:00) [8]Еще не вечер.
PZ (2005-02-26 10:12:00) [9]Я думаю, его интересует операция i (1..i..n). Вот, если бы он уточнил.
Anatoly Podgoretsky (2005-02-26 09:23:00) [10]novice_man © (26.02.05 05:44) [2]
То что возникнет в 2, не интересует автора, его интересует как выполнить несуществующий n+1, вот попробуй на это ответить.
novice_man (2005-02-26 05:44:00) [11]
>try
>операция 1;
>операция 2;
>…
>операция n;
>except
>{ничего не делаем}
> end;
Даже если excetion возникнет в операция 2то управление перейдет в секцию except end, а не как не на следующий опертор.
Германн (2005-02-26 02:58:00) [12]2 oleg_SYS © (26.02.05 02:44)
В твоем примере "операции n+1" - просто нет! И нечего обсужлать. И не на что отвечать. И нечего предложить!
Уточни вопрос!