Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
ВнизException & Result Найти похожие ветки
← →
Jolik © (2004-10-18 15:59) [0]такая весчь - раньше не замечал...
При выполнении такого кода:
begin
...
i := 30;
...
i := MyFunc();
...
end;
function MyFunc();
begin
result := 0;
raise MyException.Create();
end;
если в MyFunc возникает raise компилятор не переписывает значение result (которое устанавливается ДО raise) в переменную i в основной программе... Т. е. i как была 30, так и остается после вызова MyFunc (если есть raise конечно)...
Это нормально?
Спасибо!
← →
Rem (2004-10-18 16:12) [1]Нормально.
← →
Суслик © (2004-10-18 16:14) [2]для некоторых типов это так, для некоторых нет.
для целых (integer) так и должно быть.
← →
Jolik © (2004-10-18 16:36) [3]а какой в этом физический смысл? а для каких типов как?
← →
Суслик © (2004-10-18 17:17) [4]
> а какой в этом физический смысл? а для каких типов как?
зависит от того, как передается параметр.
способ передачи параметров см в штатной справке delphi.
раздел object pascal reference\program control\parameters and functions results.
Те типы, которые возвращаются как скрытый var параметр не теряют значения.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c