Machen Sie einfach Ihren Rückgabewert zu einer Variablen. Sie können die Variable innerhalb Ihrer area-Anweisung verwenden, aber der Rückgabewert für die Methode wird die letzte Anweisung sein, die im nicht-außergewöhnlichen Teil der Methode ausgewertet wird. Zum Beispiel:
%Vor%Beachten Sie, dass die obige Technik auch dann funktioniert, wenn Sie zu einem früheren Zeitpunkt zurückkehren, da der Wert, der an das return Schlüsselwort übergeben wird, immer noch der letzte nichtausgewertete Ausdruck ist. Zum Beispiel sollte die folgende Methode niemals false zurückgeben:
%Vor% Warum brauchst du das in ensure
? Wenn der Hauptteil der Methode ohne Ausnahme abgeschlossen wurde, wird der Rückgabewert dieses Teils von der Methode zurückgegeben (es sei denn, Sie haben return
in ensure
). Wenn eine Ausnahme eintritt, wird der return
in Ihrem Hauptteil überhaupt nicht berechnet.
Natürlich können Sie immer den folgenden (sehr hässlichen IMO) Code verwenden. Aber bitte tu das nicht. Eine bessere Idee ist es, nur den Ressourcenbereinigungscode im Sicherstellungsblock zu lassen.
%Vor%Tags und Links ruby