Einzelnen Beitrag anzeigen

Carsten1234

Registriert seit: 9. Apr 2008
Ort: Vechelde
178 Beiträge
 
Delphi 8 Professional
 
#1

Programmfortsetzung nach Exception

  Alt 23. Apr 2009, 07:36
Hallo zusammen,

ich habe eine Unit, die mehrere Funktionen für die Kommunikation mit einem am PC angeschlossen Gerät beinhaltet. Zusätzlich gibt es eine "Masterfunktion" in dieser Unit, die alle Unterfunktionen nacheinander aufruft.
Tritt nun in einer dieser (Unter-)Funktionen ein Kommunikationsfehler auf, schmeisse ich eine eigene Exception. Um das ganze mal zu verdeutlichen:
Delphi-Quellcode:
function SubFct1: integer;
begin
(...)
end;

function SubFct2: integer;
begin
(...)
end;

function MasterFct: integer;
begin
  Result:= SubFct1;
  Result:= SubFct2;
end;

procedure COMErrorHandling;
begin
  raise COMException.Create(...);
end;
In der MainForm steht ferner:
Delphi-Quellcode:
procedure TMainForm.FormCreate(Sender: TObject);
begin
  Application.OnException:= AppException;
(...)
end;

procedure TMainForm.AppException(Sender: TObject; E: Exception);
begin
  if (E is COMException) then
  begin
  (...)
  end
  else
   MessageDlg('Es ist folgender Fehler aufgetreten:' +#10+#13+
               E.Message + #10+#13 +
              'Fehlertyp: '+ E.ClassName, mtError, [mbOk], 0);
end;
Das ganze funktioniert auch fast gut.
Problem: Es wird die MasterFct betreten und SubFct1 aufgerufen. Es tritt ein Kommunikationsfehler mit dem Gerät auf und es wird eine Exception geworfen. Allerdings wird nach dem Quittieren der Fehlermeldung in der MasterFct nicht mehr weiter gegangen zu SubFct2.
Frage: Warum nicht?

Dank vorab und Gruß, Carsten
  Mit Zitat antworten Zitat