Zitat von
Elvis:
Assertions sind dafür da deinen Code zu prüfen. Niemals um Dinge zu prüfen, die von außen/ von Benutzern deiner Klasse rein geworfen wurden.
Denn Assertions werden normalerweise im Release ausgeschaltet.
Das ist richtig. Aber ich bin im Beispiel davon ausgegangen, dass im final Release die Fehler erkannt sind. Das ist ne Interpretationssache der Frage.
Wenn ich eine Klasse mit TKlasse.Create (123) instanziere anstatt mit TKlasse.Create(124), so fliegt mir die Assertion um die Ohren, und ich kann den Code bereinigen. Nach Testen tritt der Fehler nicht mehr auf, und im Final Release kann ich beruhigt die Assertion ausschalten.
Aber Du hast Recht. Wenn es wirklich um logische Überprüfungen geht, so ist eine
Exception die erste Wahl.
Ich bin von ersterem ausgegangen. Wir haben bei uns einige visuelle Klassen, die im Code instaziert werden und im Form dargestellt werden. Und wenn die 30 Instanzen einmal laufen, so wird sich daran auch nie mehr was ändern. Ich kann also während der Entwicklung ALLE Fälle testen, und bin mir demnach sicher, im Final Release werden auch keine Fehler mehr auftreten.