In article <taciqh$g7o$
1...@news-cypress.fernuni-hagen.de>,
feu...@mpaap.de says...
> Ich sehe nicht, inwiefern das eine *Stilfrage* sein sollte.
>
> Wenn es eine Methode ist, die dir eine ja/nein-Frage beantwortet, gibst
> du ein boolean zurück, wenn es eine Methode ist, die lediglich etwas
> tut, aber dir keine explizite oder implizite Frage beantwortet, nimmst
> du void. Wenn es eine Methode ist, die lediglich etwas tun soll, was
> aber evtl. nicht klappt, dann codierst du das durch eine Exception,
> nicht durch einen boolean-Rückgabewert. Ich sehe da eher wenige
> Überschneidungen.
Eine Überschneidung ist etwas wie ein datennstruktur#remove, wo man z.B.
ein boolean oderr Objekt zurück geben kann, je nach dem, ob oder was
tatsächlich was entfermt wurde, oder ob das Objektz oder der Schlüssel
gar nicht vorhanden war.
Eine Exception wäre für sowas eine gewaltig überdimensionierte Kanone.
IMHO sollte eine Exception eine tatsächliche Ausnahme sein, kein Teil
des regulären Kontrollflusses.
Wenn ich zum Beispiel ein Teil vom Lager nehme, kann ich das so lösen:
a) Ich nehme es vom Lager (reduziere den Beatand um 1), war nichts drin,
fliegt eine Exception.
b) Ich nehme es vom Lager (reduziere den Beatand um 1), war nichts drin,
bekomme ich einen Identifier als Optional.
d) Ich nehme es vom Lager (reduziere den Beatand um 1), war nichts drin,
bekomme ich ein false zurück.
e) Ich nehme es vom Lager (reduziere den Beatand um 1), war nichts drin,
mache ich nichts.
Für mich ist a) okay, wenn ich immer vorher frage, ob das Teil am Lager
ist, dann fängt die Exception praktisch eine mögliche race-condition.
Wenn ich aber bei a) stumpf ohne vorher zu fragen immer vom Lager nehme
und mit dem Fall, dass es nicht am Lager ist, immer im Exceptionhandler
deale, dann missbrauche ich die Exception für den regulären
Kontrollfluss und das finde ich ein wenig unelegant.
Für mich ist e) wie ein Schuss ins Dunkle, ich gebe das Kommando den
Lagerbestand zu reduzieren und weiß am Ende nicht, ob es geklappt hat,
müsste also den Lagerbestand immer vorher nud nachher erfragen und eine
eventuelle Race-Condition könnte für einen aissehen, wie ein Erfolg und
für den anderen, wie ein Miserfolg.
Gruß,
-Wanja-
--
..Alesi's problem was that the back of the car was jumping up and down
dangerously - and I can assure you from having been teammate to
Jean Alesi and knowing what kind of cars that he can pull up with,
when Jean Alesi says that a car is dangerous - it is. [Jonathan Palmer]