Re: ersetzt try..except begin..end?
Zitat:
Du kannst ja auch schreiben
Delphi-Quellcode:
...
except on e:EEineException do begin TuWasMitderEinenException ... end; on e:EAndereException do begin TuWasMitderAndereException ... end; end; |
Re: ersetzt try..except begin..end?
Zitat:
Delphi-Quellcode:
while (...) begin
end; |
Re: ersetzt try..except begin..end?
Zitat:
Delphi-Quellcode:
Ich glaube ja, Sidorion meint das gleiche wie du.
while (...) do begin
end' |
Re: ersetzt try..except begin..end?
Zitat:
Laut Styleguide gehört nach einem if immer ein begin/end. Da ist es egal, ob ein try..except-Block oder ne Anweisung oder ein anderer Anweisungsblock kommt. Ich vermute mal, die meisten hier haben noch nie in einer grösseren Firma gearbeitet, wo mehrere Leute gleichzeitig am selben Projekt arbeiten. Da MUSS man nach Styleguide arbeiten, weil nicht erst jeder den Code nach seinen Belieben umformatieren kann. Wenn ich alleine in meinem Kämmerlein an einem Projekt arbeite, dann kann ich mir schon einen eigenen exotische n Stil überlegen, sodass keiner mehr mit dem Code klarkommt. |
Re: ersetzt try..except begin..end?
Da war ich wieder mal zu schnell und hab nicht genug nachgedacht :oops:
Was du geschrieben hast meinte ich... Es ging mir darum, dass bei while halt doch begin end benötigt wird. |
Re: ersetzt try..except begin..end?
Ich meinte While..do :). Allerdings fällt mir grad auf, dass while nicht in die Aufzählung von mir passt (genau wie for und if), da dieses eine Einzelanweisung ist, die lediglich die folgende mehrfach wiederholt.
p.s.: Sorry ich wollte keinen Kleinkrieg über Styles lostreten. Asche auf mein Haupt. |
Re: ersetzt try..except begin..end?
Zitat:
Edit: Buchstabendreher |
Re: ersetzt try..except begin..end?
Zitat:
Delphi-Quellcode:
try
// ... except if ExceptObject is meinException then ShowMessage(meinException(ExceptObject).DeineMessage) else if ExceptObject is andereException then ShowMessage(andereException(ExceptObject).AndereMessage) else ShowMessage(Exception(ExceptObject).ClassName + ' ' + Exception(ExceptObject).Message); end; |
Re: ersetzt try..except begin..end?
Delphi-Quellcode:
Kannst du das äußere begin end gleich nach der IF Abfrage weg lassen ohne das sich was an der Funktionalität verändert ?
if x then
begin try except end; end; Ja, also ist es sinnvoll es auch wegzulassen da es ein redundanter Source ist. Jeden überflüssige Zeile im Source sollte nach Möglichkeit auch eliminiert werden da sich so zwangsläufig die Lesbarkeit und damit Verständlichkeit des Sources erhöht.
Delphi-Quellcode:
Bei
if x then
begin try except end; end else begin try except end; end; // würde so aussehen if x then try except end else try except end;
Delphi-Quellcode:
ist es schon wieder eine andere Pronlematik. zb. wenn
if x then
begin try finally end; end;
Delphi-Quellcode:
Der letzere Falle ist deshalb eine Krücke da wir ja auch verschachtelte IF Abfragen haben könnten. Es verführt dann dazu gleich am Begin einer Funktion alle diese Objecte erstmal auf nil zu setzen. Je nach Path werden aber bestimmte Variablen dann garnicht benötigt und das fürht dazu das der Compiler schlechter den besten Code erzeugen kann, eben weil wir die Variablen schon in Advance benutzt haben.
if x then
begin Object := TObject.Create; try finally Object.Free; end; end; // falsch wäre hier if x then try Object := TObject.Create; finally Object.Free; end; // oder unellegant wäre Object := nil; if X then try Object := TObject.Create; finally Object.Free; end; In diesem Falle wäre also ein begin end mit enthaltenem try finally Block sauberer. Gruß Hagen |
Re: ersetzt try..except begin..end?
Zitat:
Grüße, Messie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz