====== Exception & Erreurs======
===== La class =====
Exception = class(TObject)
public
constructor Create(const msg : string);
constructor CreateFmt(const msg : string; const args : array of const);
constructor CreateRes(ResString: PString);
constructor CreateResFmt(ResString: PString; const Args: array of const);
constructor CreateHelp(const Msg: string; AHelpContext: Longint);
constructor CreateFmtHelp(const Msg: string; const Args: array of const;
AHelpContext: Longint);
constructor CreateResHelp(ResString: PString; AHelpContext: Longint);
constructor CreateResFmtHelp(ResString: PString; const Args: array of const;
AHelpContext: Longint);
Function ToString : String; override;
property HelpContext : longint read fhelpcontext write fhelpcontext;
property Message : string read fmessage write fmessage;
end;
===== Déclencher une Exception =====
raise exception.create('Cas non défini, à implementer...')
ou formaté :
raise exception.createFmt('Cas [%d] non défini, à implementer...',[varType(v)])
===== Try/Except : Capturer une Exception =====
try
MaProcedureQuiDeclencheUnException;
except
on E:EOleException do
Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
on E:Exception do
Writeln(E.Classname, ':', E.Message);
end;
===== Application.CaptureException =====
Apparement TApplication aurait une propertir CaptureException (public) pour gérer les exceptions.... a creuser.
procedure TApplication.RunLoop;
begin
repeat
if CaptureExceptions then
try // run with try..except
HandleMessage;
except
HandleException(Self);
end
else
HandleMessage; // run without try..except
until Terminated;
end;
===== Liste des erreurs Windows =====
La liste des erreurs Windows se trouve dans le fichier ''...\fpcsrc\rtl\win\wininc\errors.inc''