Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit globalem Exception Handling (https://www.delphipraxis.net/139792-problem-mit-globalem-exception-handling.html)

WebUpdate System 5. Sep 2009 15:19

Re: Problem mit globalem Exception Handling
 
Hallo Gravitar,

weshalb erstellst Du dir nicht ein eigenes Exeption Objekt, welchem Du im Create das Objekt mitgibst. Dann kannst Du zentral die Exception abfragen und hast volle Kontrolle über den Kontext.

Nur mal so als Idee

Gravitar 5. Sep 2009 15:28

Re: Problem mit globalem Exception Handling
 
Hi himitsu,

auch wenn es sinnlos ist :wink: hat es durch diesen Hinweis
Zitat:

S: so als Tipp: schau mal wo SetFokus deklariert wurde ... mindestens diese Klasse müstest du definieren :zwinker:
jetzt doch funktioniert.

Wenn man MyErrorObject als TWinControl definiert, funktioniert auch .setfocus.

Hier die vollständige Error-Routine:

Delphi-Quellcode:
procedure TFrmMain.MyExceptionHandler(Sender : TObject; E : Exception );
var err : TObject;
begin
  MessageDlg('ERROR: ' + E.Message, mtError, [mbOK],0);
  MyErrorObject.SetFocus;
  MyErrorObject := nil;
end;
Ist hier zwar manchmal wie Schnitzejagd, aber trotzdem: Problem gelöst.

Und mein Programm schnurrt wie ein Kätzchen :-D

Ralf Kaiser 5. Sep 2009 15:47

Re: Problem mit globalem Exception Handling
 
Nochmal eine Frage:

Was passiert jetzt wenn in deinem Programm eine andere Exception auftritt (z.B. bei Speicherproblemen auf dem Rechner)? Das Programm läuft in deinen globalen Exceptionhandler und es knallt gewaltig weil MyErrorObject nichts mit der anderen Exception zu tun hat.

Du solltest zumindest nachprüfen ob MyErrorObject <> nil ist und ob es auf ein TEdit verweist. Ausserdem solltest du prüfen ob die auflaufende Exception einem deiner erwarteten Exceptiontypen entspricht.

Gravitar 5. Sep 2009 16:07

Re: Problem mit globalem Exception Handling
 
Zitat:

Zitat von Alfi001
Nochmal eine Frage:

Was passiert jetzt wenn in deinem Programm eine andere Exception auftritt (z.B. bei Speicherproblemen auf dem Rechner)? Das Programm läuft in deinen globalen Exceptionhandler und es knallt gewaltig weil MyErrorObject nichts mit der anderen Exception zu tun hat.

Du solltest zumindest nachprüfen ob MyErrorObject <> nil ist und ob es auf ein TEdit verweist. Ausserdem solltest du prüfen ob die auflaufende Exception einem deiner erwarteten Exceptiontypen entspricht.

Mhm, stimmt.

Ich werde vor .setfocus prüfen ob <> nil.

Danke :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:59 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz