![]() |
AW: "FinalllyExit" gewünscht
Zitat:
Ein Speicherleck ist zwar nicht schön aber RAM ist meistens genug da. Wenn andere Ressourcen nicht freigegeben werden, kann es schon ärgerlicher werden. Und genau dafür hat man ja try-finally ;) |
AW: "FinalllyExit" gewünscht
Zitat:
DoNotIfExitBefore |
AW: "FinalllyExit" gewünscht
Mag nur meine Meinung, aber für jedes Exit sollte es einen Schlag in den Nacken geben.
Klar, an manchen Stellen kann man sich in etwas vertrackten Konstrukten einfach aus der Affaire ziehen, aber sauber gecoded ist es zu 99.99% vermeidbar. |
AW: "FinalllyExit" gewünscht
@Stevie: Danke, genau diese Worte habe ich mir beim Lesen dieses Themas gewünscht :thumb:
|
AW: "FinalllyExit" gewünscht
Zitat:
Ein Beispiel:
Delphi-Quellcode:
// mit Exit
begin if not FileExists(Filename) then Exit; LoadFile(); ProcessFile(); DoSomethingElseWithFile(); end; // ohne Exit begin if FileExists(Filename) then begin // extra Zeile // + Verschachtelung LoadFile(); ProcessFile(); DoSomethingElseWithFile(); end; // extra Zeile |
AW: "FinalllyExit" gewünscht
Zitat:
Zumal man mit Exit(Value) in Funktionen auch gleich einen Result-Wert zuweisen kann. |
AW: "FinalllyExit" gewünscht
Grade wenn man viele APIs hintereinander aufruft und immer wieder die Rückgabe prüft, dann hat man ohne Exit spätestens nach der 4.-5. Verschachteltung viel Spaß den Code sauber einzurücken :D
|
AW: "FinalllyExit" gewünscht
Ist die überladene Funktion Exit mit Value neu?
Weil hier bei mir gibts die nicht, ich hab nur ein Exit()! |
AW: "FinalllyExit" gewünscht
Zitat:
Ernsthaft - um 2 Codezeilen zu sparen? Worin leidet denn beim 2. die Lesbarkeit? Stell dir vor, man baut mal sowas wie Logging ein:
Delphi-Quellcode:
Ah, dann kommt bestimmt die Frage, wie man mit trotz Exit noch bestimmten Code ausführen kann... Merkste was?
begin
Logger.EnterMethod('LoadFile'); if not FileExists(Filename) then Exit; LoadFile(); ProcessFile(); DoSomethingElseWithFile(); Logger.LeaveMethod('LoadFile'); end; begin Logger.EnterMethod('LoadFile'); if FileExists(Filename) then begin LoadFile(); ProcessFile(); DoSomethingElseWithFile(); end; Logger.LeaveMethod('LoadFile'); end; Zitat:
Zitat:
|
AW: "FinalllyExit" gewünscht
Zitat:
Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 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