Lemmy Danger: Exceptions in Funktionen (Rückgabe)

Beitrag lesen

Guude!

Wie kann man dieses Problem (elegant) lösen?

Entweder bleibst Du beim Rückgabetyp int (wobei ich bei Divisionen float nehmen würde aufgrund möglicher Kommazahlen), baust die Methode getTeilen() folgendermaßen um:

...
public int getTeilen(int a, int b) {
   try {
      return a/b;
   } catch(Exception e) {
      return null;
   }
}
...

und fragst im Servlet ab, ob der Rückgabewert null ist, oder Du gibst einen String zurück (was weniger elegant ist):

...
public String getTeilen(int a, int b) {
   try {
      return a/b + "";
   } catch(Exception e) {
      return "Fehler"; // muss ja nicht gleich eine
                       // Division durch "0" sein
   }
}
...

Wie gesagt: Erstes Beispiel ist eleganter, sollte aber float zurückgeben. Exceptions können auch bei einem Überlauf des Wertebereichs auftreten, weshalb die Abfrage _irgendeiner_ Exception keine genaue Auskunft über die Art des aufgetretenen Fehlers gibt. Eine pauschale Aussage wie "Division durch'0'" ist daher unpassend.

LG ausm Hesseland
Lemmy

--
Wer seiner Frau gegenüber stets beteuert, dass DAS tatsächlich 30cm sind, darf sich nicht wundern, wenn sie nicht richtig einparken kann...