Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#25

Re: ersetzt try..except begin..end?

  Alt 20. Sep 2007, 13:20
Es ginge glaub ich aus so

Delphi-Quellcode:
try
except
  on E: EThisException do HandleThisException(E) else
    on E: EThatException do HandleThatException(E) else
      on E: Exception do HandleAnyException(E);
end;
Das hat dann aber eine Klassenabfrage in der letzten Zeile mehr als die IF Abfrage.
Zudem wird bei jedem on E: XYZ do erneut aus dem SEH Frame das Exception Object geladen werden müssen. Das bedeutet 2 indirekte Specherzugriffe mehr pro dieser Abfrage.

Die IF Abfrage Methode holt also nur einmalig E aus dem SEH Frame im Stack. Danach verhalten sich die IF Abfragen wie in einem with E do Block.

Aus meiner Sicht also effizienter und auch leichter lesbar. Die Lesbarkeit liegt aber oft im Auge des Betrachters, die entstehdne Funktionalität aber nicht. Und exakt in diesem Punkt unterscheiden sich unsere Lösungen beträchtlich.

Gruß Hagen
  Mit Zitat antworten Zitat