Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: Guter Stil oder 'Wie programmiere ich vernünftig?'

  Alt 18. Apr 2006, 23:35
Zitat von TPok:
Ein Problem fällt mir dabei sofort auf. Diesen handle ich mir durch das exit ein. Falls ich vor diesem Abschnitt z.B. einen Button deaktiviere und danach wieder aktivieren will, wird dies im Fehlerfall nicht ausgeführt, da die Prozedur einfach abgebrochen wird.
Du kannst dein Disable/Enable des Buttons mittels einer try/finally "schützen". Das Exit springt dann in das finally.

Zitat:
Fall 2:
Es ist ja hinlänglich bekannt, dass man zum Ressourcenschutz try..finally..end-Blöcke verwendet. Was mache ich aber, wenn ich gleich mehrere Objekte zur Laufzeit erstellen muß? Es kann ja prinzipiell überall ein Fehler auftreten. Das einzige, was mir einfällt, wäre ein Schachteln der Blöcke.
Alternativ kannst du auch alle Variablen vor dem ersten try auf NIL setzen und dann in einem einzigen finally diese freigeben, ohne dich um "if variable <> nil then..." zu kümmern, weil das .Free bzw. FreeAndNil selbst abfrägt. Dabei sollte aber vom Destruktor keine Exception geworfen werden, weil sonst alle folgenden Free Aufrufe nicht mehr durchgeführt werden.
  Mit Zitat antworten Zitat