[fpc-pascal] Catching math exceptions in a DLL

OBones obones at free.fr
Wed May 16 11:45:37 CEST 2012


Hello all,

Using FPC, I'm writing a DLL that exports functions used by a given host 
process.
In order to protect the host process, it is mandatory that all 
exceptions are trapped in the exported function and in order to achieve 
that, I have the following construct in all exported functions:

function SomeFunc(SomeParam: ParamType): Boolean;
begin
   Result := False;
   try
     // do the actual work
     Result := True;
   except
     on E: TObject do
       NotifyException(E);
   end;
end;

My problem comes when I have some code that does invalid math 
operations, like division by zero for instance.
In that case, the raised exception is never caught by my except 
statement and is directly sent to the host process, making it crash badly.
Is there a way to have ALL exceptions caught, regardless of their origin?



More information about the fpc-pascal mailing list