
Math Libraries 241
11
If your matherr() function returns a non-zero result, no exception message is
printed, and errno is not set.
DOMAIN Argument domain exception
SING Argument singularity
OVERFLOW Overflow range exception
UNDERFLOW Underflow range exception
TLOSS Total loss of significance
PLOSS Partial loss of significance
program TestMatherr(output);
#include <math_p.h>
function matherr(var info: exception): integer;
begin
case info.kind of
DOMAIN: begin
{ change sqrt to return sqrt(-arg1), not NaN }
if substr(info.name^, 1, length('sqrt')) = 'sqrt' then begin
info.retval := sqrt(-info.arg1);
matherr := 1; { No exception message will be printed }
end;
end;
otherwise
matherr := 0;
end;
end;
begin
writeln('Error handling function');
writeln('sqrt(-1)= ', sqrt(-1));
end.
Kommentare zu diesen Handbüchern