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