Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: TOleContainer.Doverb(ovShow) verursacht Exception

  Alt 31. Mai 2007, 12:09
Exceptions, die in einem COM-Server entstehen werden automatisch von der VCL in eine Delphi-Exception umgewandelt (dabei sind die Interfaces IErrorInfo und ISupportErrorInfo im Spiel)
Wenn die Exception nicht durch einen Exception-Handler (try..except Block) abgefangen wird,
steigt sie wie eine Luftblase durch den Honig nach oben.
Application.OnException ist die letzte Gelegenheit die Exception doch noch zu packen und z.B. in eine Logdatei zu schreiben.
Falls Application.OnException nicht zugewiesen ist, wird die Exception über Application.ShowException(E) angezeigt.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnException := AppException;
end;
procedure TForm1.AppException(Sender: TObject; E: Exception);
begin
  if E is EOleSysError then // OLE-Exceptions
    Caption := E.Message // nur als Caption anzeigen um störende Meldungen zu vermeiden
  else
    Application.ShowException(E); // alle anderen Exception wie gehabt anzeigen
end;
Andreas
  Mit Zitat antworten Zitat