Ralf Jansen hat folgendes geschrieben: |
Mann kann diese Prüfung/Eingabeeinschränkung zusätzlich in der UI machen, und für eine gute UI ist das auch sicherlich Pflicht, aber auf auf keinen Fall ersetzt diese die Prüfung im Model. |
Wenn ich im Business-Objekt eine int-Property habe, dann ist das doch hoffentlich Prüfung genug, dass nichts Anderes als ein int hereinkommt

. Es ging mir nur um dieses eine Beispiel, ansonsten stimme ich dir natürlich zu.
lothi hat folgendes geschrieben: |
Solche Sachen würde ich jetzt nicht mit Exception abarbeiten, sondern [...] den User optisch aufmerksam machen das etwas nicht stimmt. |
Muss sich das widersprechen

? Noch einmal Beispiel WPF: Meine TextBox ist an
User.Name gebunden. Sobald der Benutzer ein Zeichen eingibt (oder wahlweise erst, wenn er die TextBox verlässt), wird die Property gesetzt, wirft eine
ArgumentException("Benutzername bereits vergeben") und der Benutzer bekommt einen kleinen roten Text unter seine TextBox. Und das Ganze ohne eine Zeile UI-Code (außer ein wenig XML).
Selbst wenn man jetzt für den UI-Code eine
IsUserNameAvailable-Methode einführen würde, muss die Prüfung mit der ArgumentException drin bleiben, wie Ralf Jansen schon gesagt hat, denn der Business-Layer hat keine Garantie dafür, dass die Methode von der GUI wirklich aufgerufen wurde. Bevor ich das zweimal programmieren muss, bleib ich doch lieber bei Exceptions

.