Hi PHistev,
Dein Einwand ist sinnlos. Wer die
Exception nicht abfängt wird auch den Flag 'Success' nicht abfragen.
Aber wenn die
Exception nicht abgefangen wird, passiert zumindest eins nicht: "Nil Pointer
exception"
Deine Variante:
Delphi-Quellcode:
...
MyObject := TMyObject.Create (Success);
MyObject.DoSomething; // <-- Phatoomp, wenn Success = False,
...
Meine Variante:
Delphi-Quellcode:
...
MyObject := TMyObject.Create;
MyObject.DoSomething; // <-- Wird erst gar nicht ausgeführt, und der Anwender sieht, wie gut der Entwickler ist!
...
Frage: Was ist besser? Was ist sicherer? Was führt vielleicht mal zu unangenehmen Effekten?
@DerDan: Noch eine Möglichkeit. Viele Wege führen nach Rom. Aber Dein Weg ist wenigstens gepflastert
Hat aber einen Nachteil: Es wird ein illegales Objekt erzeugt. Es kann ja sein, das das Objekt einfach nicht erzeugt werden _kann_ (oder nur mit Schwierigkeiten).
Ich bleib dabei: Mit
Exception ist's am einfachsten. Vielleicht sogar mit der ClassFunction von DerDan.