![]() |
AW: "FinalllyExit" gewünscht
Ja.
Ich glaub seit 2010/2009. Wie gesagt, ich fordere ja schon lange und nicht umsonst eine Kennzeichnung in der OH, seit wann es was gibt, so wie man es z.B. aus dem MSDN kennt. |
AW: "FinalllyExit" gewünscht
Zitat:
|
AW: "FinalllyExit" gewünscht
Zitat:
|
AW: "FinalllyExit" gewünscht
Zitat:
Wenn ein EXIT unsauber wäre, dann gilt das auch für Exceptions. Auch verstehe ich nicht, wieso es in allen modernen Programmiersprachen so ein Konstrukt gibt. Wenn das unsauber oder veraltet wäre, würde man das doch wegkürzen, so wie Goto's. "Exit" ist so gut wie immer sauberer, als aus einer verschachtelten Schleife mit Hilfvariablen à la "AbortedFlag" herauszutorkeln. "Vermeidbar" ist es natürlich immer, aber das sind Schleifen auch: Wozu gibt es schließlich (Rechts-)Rekursion :stupid: Was ist hier wohl übersichtlicher?
Delphi-Quellcode:
Allerdings würde ich das "FileExists"-Beispiel auch so wie Stevie codieren.
For i:=1 to N Do
For j := 1 to M Do Begin If Bla[i,j].HasInvalidData() Then Exit; Bla[i,j].Process(); ... End; ... // ... i := 1; Aborted := False; While (i <= N) and not Aborted Do Begin j := 1; While (j <= M) and Not Aborted Do Begin If Bla[i,j].HasInvalidData() Then Aborted := True Else Begin Bla[i,j].Process(); ... Inc(J) End; End; Inc(i); End; |
AW: "FinalllyExit" gewünscht
Zitat:
|
AW: "FinalllyExit" gewünscht
Zitat:
Deshalb meinte ich "hier und da". Aber es gibt Fälle, in denen es andersherum viel leserlicher und besser ist, so wie von Zacherl angesprochen. Zumindest habe ich so das Gefühl. Und noch etwas: Zitat:
Sonst hast du 2*20 Extra Zeilen und ganz zu Geschweigen von der ganzen Einrückung! Edit: Zitat:
|
AW: "FinalllyExit" gewünscht
Es gibt keinen Anlass, sich im Ton zu vergreifen - erst recht nicht in der Diskussion, ob man ein Sprachkonstrukt nun verwenden solle oder nicht. Wer das dennoch tut, hat sich hier definitiv zum letzten Mal im Ton vergriffen, meine Güte nochmal. Es ist /NUR/ ein Sprachkonstrukt, vergesst das bitte nicht.
|
AW: "FinalllyExit" gewünscht
Normalerweise prüft man die Rahmenbedingungen ja bevor man einen Process startet
Delphi-Quellcode:
Was ich meine ist, das man ein Exit eigentlich leicht dadurch verhindert, dass man vorm Aufruf einer Function die Rahmenbedingungen prüft. Wenn dann bei Processing ein Fehler auftritt ist eine Exception auch ganz angemessen geantwortet. Einfach ein Exit am Function-Eingang ist ja für den Aufrufer nicht von erfolgreichem Aufruf zu unterscheiden.
begin
if FileExists(Filename) then ProcessFile(Filename) else ShowMessage('File not exists'); end; function ProcessFile(Filename); begin bla... end; Der andere Fall, ein Exit einzusetzten um Aufgabenblöcke zu überspringen, entspricht einem Goto Ende:. Mehr braucht man ja nicht zu schreiben, ausser das sowas auch durch splitten der Aufgaben pro Funktion meist eleganter gelöst wird. |
AW: "FinalllyExit" gewünscht
Zitat:
Zitat:
An alle, die jetzt Codeschnippsel produzieren, um von der Nützlichkeit und Unabdingbarkeit von Exit zu überzeugen: Hier habt ihr nen Keks. :lol: |
AW: "FinalllyExit" gewünscht
Ok, wie es nun aussieht, fällt das in die Kategorie "Geschmackssache".
Denn beides hat ihre Vorteile und Nachteile! Es gibt Fälle, in denen das eine praktischer ist, das andere weniger. Fundamentalisten werden das nun verweigern, aber so ist das nunmal! *Keks_mampf Edit: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:53 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