Einzelnen Beitrag anzeigen

Carsten1234

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

Re: Programmfortsetzung nach Exception

  Alt 23. Apr 2009, 07:57
Beides nicht sooooo schön.
@jaenicke:
Die Kommunikationsroutinen stehe in einer eigenständigen 'einfachen' Unit ohne Formular, DataModule o.ä. und das sollte auch so bleiben.
1. weil ich die eigentlichen COM-Routinen quasi autark haben will und 2. weil die Applikation mehrsprachig sein muss, die Übersetzungen dafür jedoch in/mit der MainForm verbunden sind. Die Exception muss also von der COM-Unit "nach oben" durchgereicht und behandelt werden.

@Bernhard:
Das "Schmeissen" einer eigenen Exception soll an einem zentralen Punkt erfolgen, weil ich bei der COM-Unit von aussen nicht nur die MasterFct aufrufen kann, sondern auch die ganzen SubFct. Die MasterFct bündelt das ganze nur zu einem zentralen Aufruf beim Erstkontakt mit dem Gerät, im weiteren Programmverlauf ist es aber auch nötig, die SubFct separat aufzurufen.

Vielleicht mal so ganz pauschal, wann meine Exception geworfen werden soll.
Fall 1: Gerät antwortet nach einem Befehl vom Programm nicht in einer bestimmten Zeit => Timeout => Exception
Fall 2: Gerät antwortet nach einem Befehl vom Programm mit einem Fehlercode => Fehlercode auslesen => Exception

In einer zentralen COM-Routine, durch die alle SubFct durch müssen, wird ein entsprechender Befehl an das Gerät geschickt und in einer repeat-until Schleife wird x Sek. auf Antwort vom Gerät gewartet. Tritt einer der beiden oben genannten Fälle ein, geht es in die 'COMErrorHandling' und hier wird je nach aufgetretenem Fehlerfall eine entsprechende Exception geworfen. Tritt keiner der beiden Fälle auf, geht es zurück in die SubFct und die vom Gerät geschickten Daten werden ausgelesen&analysiert.
  Mit Zitat antworten Zitat