Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как при отлове ошибки в 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 обработку КАЖДОГО файла по отдельности, а не всей кучи.


Наверх

Титульная страница Поиск, карта сайта Написать письмо