![]() |
AW: Try - except - finally
Und bei C++ gibt es
![]() |
AW: Try - except - finally
Zitat:
Es gibt einen Punkt, an dem das Aufteilen nicht mehr zu mehr Übersichtlichkeit, sondern zum Gegenteil führt. |
AW: Try - except - finally
Zitat:
Zitat:
Zitat:
Aber was ist hiermit:
Delphi-Quellcode:
Versteht keine Sau. Aber das hier versteht jeder:
data := Socket.SendCmd(IPCMD_RECV, OPTION_TRACERT or OPTION_FOOBAR or OPTION_BLAFASEL, 4912);
OtherComplicatedStuff.MagicFunction(data);
Delphi-Quellcode:
Die Implementierung der beiden Methoden interessiert ja nicht, wenn es nur ums Verständnis geht. Aber wer's wissen will:
data := ReadDataFromSocket();
EncryptAndForwardToReceipient(data);
Delphi-Quellcode:
Ich habe den Code durch das (in deinen Augen lächerliche) Refactoring kommentiert, und zwar gänzlich ohne die negativen Effekte, die Kommentare sonst über die Zeit unbrauchbar machen (können). Jeder, der meinen Code liest, weiß sofort, was Sache ist. Und das, *obwohl* ich aus zwei Zeilen 10 gemacht habe :-)
Function TMyClass.ReadDataFromSocket() : TData;
Begin Result := Socket.SendCmd(IPCMD_RECV, OPTION_TRACERT or OPTION_FOOBAR or OPTION_BLAFASEL, 4912); End; Procedure TMyClass.EncryptAndForwardToReceipient(data : TData); Begin EncryptAndForwardToReceipient(data); End; Aber wenn Du meinst, das Du es besser weißt: Bitte schön. PS: Selbst eine Mittelwertbildung kann man refaktorisieren, wenn der Algorithmus zur Mittelwertbildung dem Leser vermutlich nicht bekannt ist (z.B. Schülern):
Delphi-Quellcode:
Auch wenn es in deinen Augen total unübersichtlich ist: Die Lesbarkeit ist erhöht ;-). Ach, und falls mal wer die Summe aller Zahlen einer Zahlenreihe benötigt, hat man ihm gleich geholfen. Auch ein netter Nebeneffekt der unübersichtlichen Programmierung.
Function BildeMittelwert(Zahlenreihe : TZahlen) : Double;
Begin if Zahlenreihe.Anzahl=0 then Raise Exception.Create('Mittelwertbildung nicht möglich'); else Result := SummeAllerZahlen(Zahlenreihe)/ Zahlenreihe.Anzahl; End; |
AW: Try - except - finally
Zitat:
|
AW: Try - except - finally
Wie wär es mit
Delphi-Quellcode:
Mavarik
result := true;
try A := TFoo.Create; try ... if bla then Exit; ... finally A.Free; end; except result := false; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz