Wenn die möglichen Werte String
und NilClass
sind, kann der Code folgendermaßen vereinfacht werden:
Zum Spaß könnte man die Methode something
folgendermaßen umschreiben:
Aber was noch wichtiger ist, Mark Thomas verdient Anerkennung für seine Beobachtung, dass das vorliegende Problem durch benutzerdefinierte Ausnahmen gelöst werden sollte.
Fehlercode-Ansatz ist gut in Sprachen, die keine Ausnahmen haben. Ruby hat sie.
Mark Thomas hat bereits in seinen Kommentar notiert, dass es so aussieht Sie versuchen, Fehler mit einer Art von Zeichenfolge-Kennung zu behandeln. Sie könnten stattdessen Ausnahmen verwenden:
%Vor% Im obigen Code something
ruft bla_permission_invalid
auf, führt seine Arbeit aus und gibt true
zurück. Wenn eine Ausnahme in bla_permission_invalid
ausgelöst wird, wird der Aufrufstapel automatisch weitergeleitet. Sie müssen ihn nicht explizit aus something
zurückgeben.
Um die Ausnahme zu behandeln:
%Vor%Tags und Links ruby refactoring return