Exit mit throw statt return

Wie hier schon zu lesen war bin ich ein großer Freund der Exception, auch als Kontrollstruktur (für den Ausnahmefall). Eben hatte ich wieder so einen Fall, in dem ich besser eine Exception geschmissen hätte ,statt mit false zu “returnen.” Das ging etwa so:

public boolean myOperation(){

  if (!preconCheck1){
    log("precon 1 failed")
     return false;
  }

  if (!preconCheck2){
    log("precon 2 failed")
     return false;
  }
 
 performActualOperation();
 return true;
}

Jetzt war es so, dass die Prüfung der Vorbedingungen immer umfangreicher wurde.

Nun wollte ich den Code etwas aufräumen, da noch einige Modifikationen notwendig geworden waren. Mein Instinkt sagte mir “Extract Method”, aber leider hat der Vorbedingungscheck mehrere Exitpoints. Ich müsste den boolean als Rückgabewert der Methode verwenden und nach aufruf prüfen und ggf. mit return false abbrechen.
Problem ich hatte auch noch einen echten Wert zurückzugeben, ganz abgesehen davon, dass mir meine IDE die Sache nur ohne das Flag geschenkt hätte.


Posted

in

,

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.