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

Вниз

Игнорирование исключений   Найти похожие ветки 

 
Ломброзо ©   (2004-04-13 00:20) [0]

Пусть есть такой код:
var i: integer;
   v_i: variant;
...
// здесь:
 try
   v_i = NULL;
   i := v_i;
 except
   on E:EVariantError do
 end;

 v_i := 100;
 i := v_i;

Код просто для примера. В первом блоке, естественно, вылетает EVariantError. Мне это место надо просто игнорировать. С включенным интегрированным отладчиком и галкой "Stop on Delphi exceptions"  "отлаживать" становится просто утомительно, отладчик упорно залезает в этот блок и там застревает. Мне надо просто игнорировать это исключение именно в этом самом месте (и не игнорировать в отстальных), т.е. заносить это класс исключений в список игнорируемых Language Exceptions глобально - нельзя. Нету ли какого-нибудь хитрого флажка отладчику игнорировать именно это место?


 
Германн ©   (2004-04-13 02:37) [1]

Abort поможет той девушке, которую ты завлек и обманул. Точнее он поможет тебе, а вот у нее могут возникнуть в дальнейшем проблемы. (((


 
NAlexey ©   (2004-04-13 08:25) [2]

Там же где включаешь галку  "Stop on Delphi exceptions" есть список игнорируемых ошибок. Добавь туда свою.


 
Ломброзо ©   (2004-04-13 18:22) [3]

>Германн ©   (13.04.04 02:37) [1]
Я не смог постигнуть всю глубину Вашей мысли. Попробуйте ещё раз.

>NAlexey ©   (13.04.04 08:25) [2]
>т.е. заносить это класс исключений в список игнорируемых >Language Exceptions глобально - нельзя.


 
Andryk ©   (2004-04-13 18:46) [4]

А если попробовать обложит возможное место ошибки проверками и условными операторами? Чтобы этой ошибки и не возникало


 
Гаврила   (2004-04-13 18:59) [5]

Присоединяюсь к предыдущему оратору
Тем более если это исключение вылетает постоянно...


 
Ломброзо ©   (2004-04-13 19:16) [6]

Исключение вылетает с невысокой вероятностью.
Ладно, пример такой. Допустим, некий DataPump делает селект из кучи (неск. десятков) РАЗНОРОДНЫХ таблиц одного источника (DBF, Excel, Access) и вставку в таблицу другой, например, MS SQL/Access. Алгоритм проще не придумаешь (псевдокод)
Qr1.First;
while not Qr1.Eof do
begin
 Qr2.Insert;
 for i := 0 to Qr1.Fields.Count - 1 do
 begin
   Qr2.FieldByName(Qr.Fields[i].Name).Value = Qr.Fields[i].Value;
 end;
 Qr2.Post;
 Qr1.Next;
end;
   
По ряду причин типы одноимённых полей в двух таблицах могут не совпадать: строка, деньги, double, float, int. Ес-но, ошибка обрабатывается в except, но раздражает то, что дебаггер всякий раз там запинается.

Ну ладно, нельзя так нельзя.


 
Cobalt ©   (2004-04-13 19:34) [7]

2 Ломброзо ©   (13.04.04 19:16) [6]
Ну, блин...
А присваивать кокнкретным типом (AsInteger/Float/etc), сделав табличку соответствий типов источника-приёмника?



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
1-1082264464
garry79
2004-04-18 09:01
2004.05.02
Как правильно сделать форму-заставку в отдельном потоке?


1-1081749006
cvg
2004-04-12 09:50
2004.05.02
Help me! Почему Undeclared identifier?


7-1078597743
Makhanev A.S.
2004-03-06 21:29
2004.05.02
Thread Error...


1-1081686827
uuuh
2004-04-11 16:33
2004.05.02
Уважаемые Мастера, подскажите как сделать экспишны ProgressBar


1-1082025096
Ivolg
2004-04-15 14:31
2004.05.02
Папка