Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Design Problem: Exceptions in einer Schleife

  Alt 5. Aug 2007, 03:16
Moin Michael,

Zitat von Luckie:
Also für mich waren immer die Getter, die den Wert der Eigenscgaft zurückliefern und die Setter setzen sie.
Sag' ich doch.
Du hast es, soweit ich das sehen kann, aber anders herum gemacht, denn das Auslesen von ProcessPriority machst Du über SetProcessPriority
Zumindest sieht Dein Konstruktor für mich etwas seltsam aus...

Zitat von Luckie:
Und die Exceptions dort abzufangen, wo sie auftreten widerspricht der Verwendung von Exceptions.

Wo sonst willst Du sie abfangen? (von einem globlen Exception-Handler mal abgesehen, der in Deinem Beispiel aber keinen Sinn macht)

Zitat von Luckie:
Der Anwender des Codes sollte entscheiden, was er mit den Exceptions macht.
Richtig. In dem von Dir genannten Falle, (lesen von ProcessPriority in der Schleife) bist Du dann selber der Anwender.
Und Du fängst die Exception ja auch ab, nur eben nach der Schleife, was aber für den konkreten Anwendungsfall wenig hilfreich ist.
Wenn Du unmittelbar die Zeile in try/except kapselst, die den Fehler bekommen kann, kannst Du ja im Except-Abschnitt entsprechend reagieren, z.B., einen entsprechendes Flag in der dem gerade aktuellen Eintrag der Prozessliste setzen.
Eine andere Variante: Du baust Dir eine Liste auf für alle Prozess-IDs, bei denen eine Exception ausgelöst wurde.
Da ich davon ausgehe, dass der Aufbau der Liste mit zu einer Deiner Klassen gehört, könntest Du dann, für den Fall, dass mindestens ein Fehler aufgetreten ist, nach der Schleife, wiederum eine Exception auslösen, um dies kenntlich zu machen.
Wenn sich hingegegen ein Anwender der Klasse eine Prozessliste aufbauen will, ist es dessen Problem, wie er das handelt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat