title image


Smiley Re: Abfangen von Exceptions in umfangreicheren Programmen
Hallo "Terminator",



viel Zeit habe ich nicht, um Romane zu schreiben, aber laß mich die Sache mit den falschen Benutzereingaben so erklären.



Nehmen wir eine 3-tier-Architektur mit Geschäftsobjekten im Middle-tier an. Ein Geschäftsobjekt nimmt z.B. die aktualisierten Daten (Eingaben) des Benutzers an. Es wäre aus sicherheitstechnischen Gründen falsch, wenn nur auf Client-Seite die Eingabe geprüft wird (aber auch dort sinnvoll!!!). Das Geschäftsobjekt muß selber noch einmal prüfen und gegebenenfalls eine Ausnahme werfen. Das ist ein hübsches Beispiel dafür, daß Fehlerquelle (im Geschäftsobjekt) und Fehlerbehandlung (1. Verlassen der Fehlernachricht aus dem Server -> Loggen + 2. GUI-Anzeige auf Client-Seite) weit auseinanderliegen können. Ein bekanntes Beispiel sind Passwortprüfungen. Sie nur auf Client-Seite auszuführen, wäre völlig daneben: Deshalb auf Client-Seite nur eine grobe formale Prüfung, ob z.B. genug Zeichen oder nur zulässige Zeichen verwendet wurden. Auf Server-Seite die inhaltliche Prüfung.



Natürlich ist eine falsche Benutzereingabe als solche keine Ausnahme und kann auf Client-Seite ohne eine Ausnahme zu werfen, z.B. mit javax.swing.InputVerifier abgefangen werden. Aber auf Server-Seite gibt es keine andere sinnvolle Möglichkeit, als auf falsche Daten mit einer Ausnahme zu reagieren und den Client darüber zu informieren.



Apropos Sun-Tutorials: Ich wollte sie keinesfalls abwerten. Der Ratschlag, Ausnahmen sofort abzufangen, ist so schlecht nicht, vermeidet er doch, daß eine Ausnahme irgendwo verschluckt wird (der schlimmstmögliche Fall der Fehlerbehandlung). Welche Fehlerstrategie einzusetzen ist, kann eben nicht so allgemeingültig beanwortet werden.

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: