Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.05;
Скачать: CL | DM;

Вниз

try ... except в цикле   Найти похожие ветки 

 
qwersdgvnb   (2006-01-19 13:38) [0]

Здравствуйте люди добрые.
Объясните такой момент пожалуйста.

если в цикле у меня возникает исключительная операция (ну например /0), которая сидит в блоке try... except, приложение продолжает работать, но выполнение самого цикла прекращается. Как сделать, что бы при возникновении исключения цикл продолжал выполняться?

т.е. например
for i:=-5 to 5 do
try
 a:=10/i;
except
showmessage("aшипка");
end;

надо чтобы на i=0 показалось сообщение об ошибке, а цикл продолжал выполняться с i=1;2;3...


 
AndreyAR   (2006-01-19 13:51) [1]

Ну так что, уважаемые, никак нельзя или никто не знает?


 
Ega23 ©   (2006-01-19 13:55) [2]

Вообще-то цикл должен дальше продолжить работу.


 
Leonid Troyanovsky ©   (2006-01-19 14:51) [3]


> qwersdgvnb   (19.01.06 13:38)  

> Объясните такой момент пожалуйста.


Видимо, переменная "a" нигде не используется.

--
Regards, LVT.


 
Digitman ©   (2006-01-19 15:12) [4]


> Ну так что, уважаемые, никак нельзя или никто не знает?


Для начала, уважаемый,  изволь в своей ветке фигурировать под одним и тем же "погонялом".

Для "конца", уважаемый, следует вникнуть в [3] и задуматься над

for i := ... to ... do
try
a:=10/i;
except
if i<>0 then
 begin
  showmessage("aшипка");
  break;
 end;
end;


 
DimonS ©   (2006-01-19 15:16) [5]

Цикл ДОЛЖЕН работать дальше! Если код именно такой.


 
AndreyAR   (2006-01-19 15:23) [6]


> Цикл ДОЛЖЕН работать дальше! Если код именно такой.

Ну не совсем конечно, это же придельно упрощенный пример.
В цикле запрос insert к базе, в частности, к MS SQL.
Исключение возникает при попытке вставить запись с уже существующим значением уникального индекса (текст сообщения сервера точно не могу привести). И вот при этом вываливаеься-таки из цикла.


 
Ega23 ©   (2006-01-19 15:26) [7]


> И вот при этом вываливаеься-таки из цикла.


если ты raise не делаешь, то НЕ ДОЛЖНО вываливаться.
М.б. ты конкретный exception указал?


 
Ega23 ©   (2006-01-19 15:27) [8]


> Исключение возникает при попытке вставить запись с уже существующим
> значением уникального индекса


Сначала надо проверять, вообще-то...


 
Digitman ©   (2006-01-19 15:28) [9]


> при этом вываливаеься-таки из цикла


.. и отладчик при этом тебе ни о чем не говорит.

Так ?


 
AndreyAR   (2006-01-19 15:34) [10]

Удалено модератором


 
AndreyAR   (2006-01-19 15:37) [11]


> Сначала надо проверять, вообще-то...


Разумеется, но происходит вставка в цикле примерно 1.000.000 записей, и выполняется весь код часа четыре. Если еще перед каждым инсертом проверку делать, то...


 
AndreyAR   (2006-01-19 15:41) [12]


> если ты raise не делаешь, то НЕ ДОЛЖНО вываливаться.
> М.б. ты конкретный exception указал?


Нет, у меня вообще просто  
except
end;
Сейчас еще раз попробую проверить, может, сам торможу...


 
Digitman ©   (2006-01-19 16:02) [13]

Удалено модератором


 
AndreyAR   (2006-01-19 16:20) [14]

Удалено модератором


 
Johnmen ©   (2006-01-19 16:24) [15]

>В помощи я не нуждаюсь.

О как!

>Если человек держит меня за полного лоха, тогда незачем вообще мне что-то отвечать.

Видимо, он и не держал, раз ответил. И это было его ошибкой...:)


 
Digitman ©   (2006-01-19 16:25) [16]


> AndreyAR   (19.01.06 16:20) [14]


А вот в этом случае, думаю, ты заработал в форуме почетное звание - LMD.


 
Leonid Troyanovsky ©   (2006-01-19 16:36) [17]


> AndreyAR   (19.01.06 16:20) [14]

>  Если человек держит меня за полного лоха, тогда незачем
> вообще мне что-то отвечать.


Да я, в общем-то, изначально и не держал.
Но, связи между EZeroDivide vs EADOError(?) предположить,
конечно, не мог. Как, собс-но, и последующую эскалацию
немотивированной агрессивности.

Т.е., прав уважаемый Digitman, я ошибался.

--
Regards, LVT.


 
AndreyAR   (2006-01-19 16:37) [18]

Удалено модератором


 
Leonid Troyanovsky ©   (2006-01-19 16:38) [19]


> Leonid Troyanovsky ©   (19.01.06 16:36) [17]

> Т.е., прав уважаемый Digitman, я ошибался.


Да, и уважаемый Johnmen также был прав.

--
Regards, LVT.


 
Ega23 ©   (2006-01-19 16:44) [20]

Удалено модератором


 
Игорь Шевченко ©   (2006-01-19 16:44) [21]

Автору - читать
http://www.ln.ua/~openxs/articles/smart-questions-ru.html
думать над прочитанным



Страницы: 1 вся ветка

Текущий архив: 2006.02.05;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.052 c
1-1136474561
Pavel__
2006-01-05 18:22
2006.02.05
Во время показа модальной формы, узнать что щелкнули...


15-1136400359
Карелин Артем
2006-01-04 21:45
2006.02.05
Голосуем. Фильм дневной дозор это...


2-1137109613
Люди
2006-01-13 02:46
2006.02.05
Как узнать существует ли файл на сайте


15-1137108846
Quattro
2006-01-13 02:34
2006.02.05
KaZaa


1-1135789538
1vopros
2005-12-28 20:05
2006.02.05
Динамическая record - возможно? Как реализовать?