Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
ВнизДирективы компелятора. Найти похожие ветки
← →
Vaitek © (2004-11-16 12:38) [0]Что-то я в хелпе не нашел, такой вещи:
Как можно директивой компелятора включить/отключить в нужном месте кода параметр "Stop on Delphi Exceptions"?
Или предложите другой способ. Конкретно - надо в некоторых участках кода отключить реакцию отладчика на вычислительные ошибки (корень из отрицательного числа и деление на ноль).
Что бы он не выдовал сообщение об обноруженном исключении, а то даже
Try
Except
End
не помогает.
Нужно это для отладки.
Спасибо.
← →
NAlexey © (2004-11-16 12:40) [1]щас тебе ответят про дерективы компелятора...
← →
Smithson (2004-11-16 12:41) [2]Никак.
Можно отключить все, можно включить требуемые исключения в список исключений :), то есть в список Exceprion, которые дельфи не обрабатывает.
← →
Vaitek © (2004-11-16 12:51) [3]Нет, ну ведб когда-то в паскале, я точно помню, как-то отключал реакцию на ошибки ввода вывода в файлы, что бы что-то там проверить. неужели нет ничего подобного?
← →
novice_man © (2004-11-16 12:59) [4]Посмотри статью по адресу:
http://www.goldfaq.ru/modules/xfsection/article.php?articleid=493
ЗЫ: Если вы Vaitek предпочитаете пользоваться форумом как поисковиком, то это дурной тон. Первым делом не поленитесь обратиться к Рамблеру и т.п.
← →
Amoeba © (2004-11-16 13:08) [5]
> Vaitek © (16.11.04 12:38)
То, что ты хочешь сделать, к директивам компилятора (и к самому компилятору) не имеет ни малейшего отношения. Остановка (или не остановка) на исключениях релизована внутри IDE.
← →
Vaitek © (2004-11-16 13:10) [6]Я эту ссылку уже видел - там нет ответа на мой вопрос. И не надо голословных обвинений. Давайте жить дружно.
← →
panov © (2004-11-16 13:11) [7]>Vaitek © (16.11.04 13:10) [6]
Вот ты бы привел пример кода, где тебе нужно подавить Exception, тогда бы и разговор был предметный.
← →
novice_man © (2004-11-16 13:21) [8]>Vaitek © (16.11.04 13:10) [6]
Я эту ссылку уже видел - там нет ответа на мой вопрос. И не надо голословных обвинений. Давайте жить дружно.
Я не хотел никого окорбить! Сорри если восприняли как выпад.
← →
Vaitek © (2004-11-16 13:27) [9]Ок, ваша взяла.
Итак в рамкаж одной процедуря я имею два так сказать логических блока.
1)
For i := 6 to 7 do
For j := -Trunc(l2/4) to Trunc(l2/2) do
Begin
...
Try
Zb1 := Zd1+{-}ar[i,0]*Sqrt(-Sqr(Yb1)*U1-2*Yb1*S1+Q1);
o3D.Points[o3D.PCount].Point[0] := Xb1;
o3D.Points[o3D.PCount].Point[1] := Yb1;
o3D.Points[o3D.PCount].Point[2] := Zb1;
o3D.Points[o3D.PCount].Color := clRed;
Inc(o3D.PCount);
Except
End;
...
End;
В этом блоке, как можно заметить, в случае проблем с sqrt добавление данных в массив не производится (не волнуйтесь - память под массив я уже выделил).
Далее следует следующий блок.
Repeat
...
Yb1 := Yb1+Yb1s;
Xb1 := Yb1*V1+W1;
Zb1 := Zd1-Sqrt(-Sqr(Yb1)*U1-2*Yb1*S1+Q1);
Xb2 := Yb2*V2+W2;
Zb2 := Zd2-Sqrt(-Sqr(Yb2)*U2-2*Yb2*S2+Q2);
Xb3 := Xa3;
Zb3 := Zd3-Sqrt(-Sqr(Yb3)+2*Yb3*Ya3+Q3);
tr4 :=
Sqr(Sqr(Xb1-Xb2)+Sqr(Yb1-Yb2)+Sqr(Zb1-Zb2) - k2*k2)+
Sqr(Sqr(Xb2-Xb3)+Sqr(Yb2-Yb3)+Sqr(Zb2-Zb3) - k2*k2)+
Sqr(Sqr(Xb3-Xb1)+Sqr(Yb3-Yb1)+Sqr(Zb3-Zb1) - k2*k2);
If (tr4 > tr1) then
begin
Yb1s := Yb1s*-1;
Yb1 := Yb1+Yb1s;
Yb1s := Yb1s*0.9;
inc(ii);
End else
Begin
tr1 := tr4;
End;
...
Until ((ii >= maxstep) or (abs(tr1) < CritFunc);
Я надеюсь троеточие (...) дает понять, что это не весь код, а лишь значимый оего кусочек.
Короче в этом блоке тоже могут возникать проблемы со взятием sqrt, но так как я использую Try...Except выше, то я отключил Stop on Delphi Exceptions. Мне же надо бы отловить момент возникновения ошибки во втором блоке и просмотреть содержимое переменных, номер итерации цикла и т. п.
Теперь ясно?
← →
Vaitek © (2004-11-16 13:29) [10]За орфографию - сорри, что сегодня пальцы заплетаются 8-)
← →
panov © (2004-11-16 13:41) [11]Ну посмотри в Help
raise
re-raising
Exception
Exeception.Create
← →
novice_man © (2004-11-16 13:49) [12]Разве при запуске из-под Дельфи, ошибка деления на ноль или sqrt(-1) не возникнет?
try
k := sqrt(-10);
except end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c