Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизИгнорирование исключений Найти похожие ветки
← →
Ломброзо © (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.034 c