Re: Fehlerbehandlung
- From: "Ingo R. Homann" <ihomann_spam@xxxxxx>
- Date: Mon, 10 Sep 2007 09:08:38 +0200
Hi Volker,
Volker Glave wrote:
Ich vermute mal, dass Du diese Variante nicht
ernsthaft vorschlagen willst, aber worauf Du dann damit hinaus willst,
erschließt sich mir nicht.
Als Variante (= eine Möglichkeit) ist der Vorschlag selbstverständlich
ernsthaft.
Ja, und jetzt hast Du noch eine fast genauso schlimme Variante vorgeschlagen! Auch ernsthaft? Nochmal meine Frage: Worauf willst Du damit hinaus? Dass beliebiges Verhalten, solange es der Spec genügt, sinnvoll sein soll?
Beispiel:
Bruch b=new Bruch(1,2);
b.setZaehler(2);
b.setNenner(0);
System.out.println(b);
Das würde bei deiner Implementierung "2/2" (oder "1") ausgeben. Das
kanns nicht sein!
Du willst anscheinend nicht zulassen, dass der Nenner den Wert 0
bekommt. Ok, kann man drüber streiten, aber nehmen wir das ruhig
so auf. Deine Vorgabe also: Nenner kann/darf nicht 0 sein.
Los geht's:
Bruch b=new Bruch(1,2);
Ok, Zähler ist 1, Nenner ist 2.
b.setZaehler(2);
Ok, Zähler ist 2.
b.setNenner(0);
Zur Erninnerung, deine (nicht meine) Vorgabe war: Nenner
kann/darf nicht 0 sein.
Somit wird nun natürlich nichts getan.
System.out.println(b);
Zähler ist 2, Nenner ist 2. Was sonst. (Wäre in setNenner(0) eine
Exception geschmissen worden, hätten Zähler und Nenner ja
übrigens auch eben diese Werte.)
OK, Du hast also schonmal verstanden, was in meinem Beispiel passiert. Sehr gut. Jetzt kommen wir dazu, warum das ganz, ganz schlecht ist:
Offensichtlich hat der "Benutzer" (ob das jetzt derjenige ist, der vor einer GUI sitzt, oder der, der die GUI programmiert hat, sei mal dahingestellt), der den Nenner auf 0 gesetzt hat, einen Fehler gemacht und die Spezifikation (bzw. das Handbuch) nicht beachtet. Das ist natürlich schlecht und Fehler des "Benutzers". Aber so etwas kommt natürlich trotzdem ständig vor. Damit der Benutzer (wieder: egal, ob das jetzt der Programmierer oder der Endanwender ist) merkt, dass er einen Fehler gemacht hat, sollte er darauf hingewiesen werden. Und zwar so früh wie möglich, damit er mitbekommt, welchen Fehler er gemacht hat. Bei deiner Implementierung würde der Benutzer am Ende ein falsches Ergebnis herausbekommen, was er u.U. selbst dann noch nicht einmal merkt. Vielleicht würde er eine Rechnung falsch bezahlen oder der Server, den er fernwartet würde abschmieren oder was auch immer. Er wundert sich, und muss ziemlich mühsam rückverfolgen, wo das Problem liegt. (Vielleicht läßt sich das Problem gar nicht reproduzieren, weil er sich beim nächsten Anlauf nicht vertippt und keine 0 eingibt, so das alles richtig läuft. Das ist natürlich noch ärgerlicher, weil dem Benutzer so keine Chance bleibt, seinen Fehler zu erkennen und daraus zu lernen! Obwohl - vermutlich zieht er zumindest doch die richtigen Schlüsse und meidet die Software in Zukunft.) Tatsache ist jedenfalls: Er hat eine falsche Zahl eingegeben, etwas, was sich sehr schnell hätte abfangen lassen und sofort mit einer Fehlermeldung hätte quittiert werden müssen.
Ciao,
Ingo
.
- Follow-Ups:
- Re: Fehlerbehandlung
- From: Bernd Eckenfels
- Re: Fehlerbehandlung
- References:
- Fehlerbehandlung
- From: Mike Wesling
- Re: Fehlerbehandlung
- From: Volker Glave
- Re: Fehlerbehandlung
- From: Ingo R. Homann
- Re: Fehlerbehandlung
- From: Volker Glave
- Re: Fehlerbehandlung
- From: Ingo R. Homann
- Re: Fehlerbehandlung
- From: Volker Glave
- Fehlerbehandlung
- Prev by Date: Re: Netbeans + Schlieman => eigenen Editor schreiben?
- Next by Date: Re: [OT] Re: PHP-Interpreter/Compiler für Java - sinnvoll?
- Previous by thread: Re: Fehlerbehandlung
- Next by thread: Re: Fehlerbehandlung
- Index(es):
Relevant Pages
|