17.12.53 power Synopsis: Return real power. Declaration: function power(base: float;exponent: float) : float Visibility: default Description: power raises base to the power power. This is equivalent to exp(power*ln(base)).
begin if Exponent=0.0 then if base <> 0.0 then result:=1.0 else InvalidArgument else if (base=0.0) and (exponent>0.0) then result:=0.0 else if (abs(exponent)<=maxint) and (frac(exponent)=0.0) then result:=intpower(base,trunc(exponent)) else if base>0.0 then result:=exp(exponent * ln (base)) else InvalidArgument; end;
(InvalidArgument как раз и бросает Exception)... Видишь, что произойдет, если дробная часть экспоненты ненулевая? Исключение выброшено не будет... А попробуй