![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как при отлове ошибки в try...except выскочить в определённое м. [D7, WinXP]
Zhekson © (2004-11-24 15:45:00)При обработке кучи файлов в блоке try...except отлавливаю ошибку. Как перейти к обработке следующего файла?
Goto - не помогает.
Digitman (2004-11-24 18:06:00) [1]
> Zhekson (24.11.04 17:39) [19]
а ! ну да, конечно же ! как я забыл-то, лапоть
Zhekson (2004-11-24 17:39:00) [2]Плохиш [12]>
есть контакт. спасибочки.
Digitman[14]>
"Чёж не умею???, умею, только у меня рецепт с которым Вы не знакомы !" (C)
Digitman (2004-11-24 17:19:00) [3]ДЛЯ очередного_файла ДЕЛАТЬ
ТРАЙ
чего тоей душеньке угодно
ИКЗЭПТ
ЭНД
ЧТО сложного или непонятного в такой банальнейшей логике ?
Sandman25 (2004-11-24 17:17:00) [4]
while ... do
try
LoadFile;
ProcessFile;
except
ShowMessage(...);
end;
Плохиш (2004-11-24 17:16:00) [5]
> Zhekson (24.11.04 17:12) [15]
> Плохиш [12]>
> не то..., так я вылетаю только из try...except...
А справку по Continue почитать?
Zhekson (2004-11-24 17:12:00) [6]Плохиш [12]>
не то..., так я вылетаю только из try...except...
хотя потом возможны варианты...
пробую...
Digitman (2004-11-24 17:08:00) [7]
> Zhekson (24.11.04 16:57) [11]
> мне такой вариант не подходит, потому как за try...except
> находится обработка, которая не имеет смысла, если отловлена
> ошибка.
"Вы не любите кошек ? да Вы просто не умеете их готовить !" (С)
wal (2004-11-24 17:01:00) [8]Zhekson (24.11.04 16:57) [11]
Ну и заноси, все, что не имеет смысла при ошибке, под try, при ошибке оно выполнено не будет.
Плохиш (2004-11-24 16:59:00) [9]Вместо goto xxx Continue.
Zhekson (2004-11-24 16:57:00) [10]Rem [10]>
мне такой вариант не подходит, потому как за try...except находится обработка, которая не имеет смысла, если отловлена ошибка.
Rem (2004-11-24 16:48:00) [11]>>просто нужно при отлове ошибки скакнуть за пределы блока try...except в нужную позицию
Посмею предложить разместить "нужную позицию" сразу же за "блоком try...except".
Anatoly Podgoretsky (2004-11-24 16:47:00) [12](закончил обработку этого файла) и (пора приступить к обработке следующего)тоже не наблюдается
Zhekson (2004-11-24 16:40:00) [13]Удалено модератором
Zhekson (2004-11-24 16:40:00) [14][5]> оказаться хочу между
(закончил обработку этого файла) и (пора приступить к обработке следующего)
[6]> впринципе не при чём... но и вопрос ведь не про файлы...
просто нужно при отлове ошибки скакнуть за пределы блока try...except
Digitman (2004-11-24 16:19:00) [15]
> Как перейти к обработке следующего файла?
при чем здесь "файл" ?
Anatoly Podgoretsky (2004-11-24 16:17:00) [16]Они и не нужны, но ты не показываешь где ты хочешь оказаться, вот и не наблюдается.
Zhekson (2004-11-24 16:15:00) [17]Метки в таких случаях вообще нельзя использовать:
The GOTO statement cannot jump into or out of an exception handling statement.
Может есть другой способ?
Anatoly Podgoretsky (2004-11-24 16:07:00) [18]N1 не наблюдается.
Zhekson (2004-11-24 15:58:00) [19]
while not Eof(fpc) do
begin
................................
for i := 1 to 37 do
begin
try
data[i] := data[i] / count - ped[i] * 0.1;
except
on EInvalidOp do
begin
Beep();
MessageDlg('???'), mtWarning, [mbOk], 0);
GoTo N1; //типа за конец обработки файла
end
end;
aver1 := aver1 + data[i];
end;
........................................
end;
всмысле у меня try...Except не глобальный отлов ошибок во всей обработке, а при обработке конкретного файла, конкретного действия.
Amoeba (2004-11-24 15:47:00) [20]Заключай в try...except обработку КАЖДОГО файла по отдельности, а не всей кучи.