Вниз
Скачать: CL | DM;

Продолжение выполнения кода со след. стр. после ошибки   Найти похожие ветки 

← →
AGGRESSOR ©   (2004-06-07 16:51) [0]

VBA:
on error resume next

Delphi:
???


← →
Digitman ©   (2004-06-07 17:05) [1]

try
 .. строка N
except
end;
.. строка N + 1


← →
AGGRESSOR ©   (2004-06-07 17:10) [2]

Digitman ©, у меня 24 строки кода. Предлагаешь каждую заключать в отдельный блок трай-эксептов? :-/


← →
Sandman25 ©   (2004-06-07 17:13) [3]

[2] AGGRESSOR ©   (07.06.04 17:10)

Что делают эти 24 строки? Ошибка возможна на любой из них?


← →
Digitman ©   (2004-06-07 17:14) [4]


> AGGRESSOR ©   (07.06.04 17:10) [2]


разумной альтернативы у тебя нет

любая строчка из 24-х упомянутых может вызвать неожидаемое тобой исключение

извращаться же с коррекцией кадров стека  - себе дороже


← →
Digitman ©   (2004-06-07 17:19) [5]


> AGGRESSOR


с др.стороны, неразумно предполагать, что любая из этих 24-х строчек потенциальна с т.з. возможных непредвиденных исключений

блок try..except предназначен, как правило, для перехвата/обработки ожидаемых исключений, а не "всяка разна без разбору"


← →
AGGRESSOR ©   (2004-06-07 17:20) [6]

Sandman25 ©, эти строки- команды на запуск SQL-запросов (TQuery). Допустим, я хочу сделать дроп тейбл, но таблицы в базе нет. Вот вам и ошибка, а мне нужно чтоб все продолжало работать. Конечно, не все 24 строки потенциально опасны, но 15 точно.

А разве нету какой-то директивы компилятора который бы заставил систему игнорировать ошибки?


← →
Sandman25 ©   (2004-06-07 17:26) [7]

[6] AGGRESSOR ©   (07.06.04 17:20)

Какая СУБД? Если поддерживает хранимые процедуры, то это нужно делать там.
Если не поддерживает, то все равно рекомендуется анализировать код ошибки - если таблица не удалилась не потому, что ее нет, а потому что было прервано соединение с сервером, то продолжать выполнение не стоит.


← →
Reindeer Moss Eater ©   (2004-06-07 17:27) [8]

Digitman ©, у меня 24 строки кода. Предлагаешь каждую заключать в отдельный блок трай-эксептов? :-/

С тех пор как изобрели структурное программирование уже не надо каждую строчку заключать в отдельный блок try except.


← →
Anatoly Podgoretsky ©   (2004-06-07 17:27) [9]

С другой стороны выполнение следующий строки после ошибке еще потенциальные опаснее, вплоть до разрушения системы.


← →
AGGRESSOR ©   (2004-06-07 17:29) [10]

Sandman25 ©, ты абсолютно прав. Ладно, хотел сделать побыстрее... не буду. Лучше потрачу лишних полдня, но все зато будет работать как надо. Спасибо!


← →
AGGRESSOR ©   (2004-06-07 17:33) [11]

Reindeer Moss Eater ©, вот человек дал пример:
try
.. строка N
except
end;
.. строка N + 1


Это кривое, но решение. Если знаешь как заключить 25 строчек в ОДИН блок трай-эксепт и при этом удовлетворить условию задачи- напиши пожалуйста.


← →
Anatoly Podgoretsky ©   (2004-06-07 17:38) [12]

AGGRESSOR ©   (07.06.04 17:33) [11]
См. Digitman ©   (07.06.04 17:14) [4] последнея строка, но готовься к суровым испытаниям.


← →
AGGRESSOR ©   (2004-06-07 17:42) [13]

Anatoly Podgoretsky ©, я понял- иду писать трай-эксепты :)


← →
Anatoly Podgoretsky ©   (2004-06-07 17:44) [14]

А может не надо, может стоить сменить идеологиж, пойти к понятию операция, более высокий макроуровень, зачем же детали.


← →
icWasya ©   (2004-06-07 18:12) [15]


procedure TryRunSQL(Q:TQuery);
begin
 try
   Q.ExecSQL;
 except
  on E:Exception do begin
    Log("Except "+E.Message+" "+on "+Q.Name);
  end;
 end;
end;

  TryRunSQL(Query1);
  TryRunSQL(Query2);
  TryRunSQL(Query3);
  TryRunSQL(Query4);
  .........
  TryRunSQL(Query21);
  TryRunSQL(Query22);
  TryRunSQL(Query23);
  TryRunSQL(Query24);



← →
Mim1 ©   (2004-06-07 18:50) [16]

[15] icWasya ©   (07.06.04 18:12)

Цикл напрашивается.

-
По вопросу. Может проверять есть ли таблица перед попыткой ее уничтожения, а не анализировать результат? Избегать появления эксепшена, а не обрабатывать его.



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.019 c
1-1086174693
evgen
2004-06-02 15:11
2004.06.20
Как по нажатию кнопки свернуть окно?


1-1086331600
Salik
2004-06-04 10:46
2004.06.20
задержка выполнения действий в цикле


1-1086715310
red chief
2004-06-08 21:21
2004.06.20
Текст в указанонном месте мышки


1-1086598594
AnP
2004-06-07 12:56
2004.06.20
Treeview ->Stream->Treeview


14-1086024744
ИМХО
2004-05-31 21:32
2004.06.20
1 день лета!




   Наверх