Ruby Oneline Rescue
Ich habe kürzlich erfahren, dass Sie verwenden könnenrescue
in einer Codezeile, falls in dieser Zeile etwas schief geht (siehehttp://www.rubyinside.com/21-ruby-tricks-902.html Tipp Nr. 21). Ich habe einen Code, der früher so aussah:
if obj['key'] && obj['key']['key2'] && obj['key']['key2']['name']
name = obj['key']['key2']['name']
else
name = ''
end
Mit demrescue
Methode, ich glaube, ich kann diesen Code in etwas wie folgt ändern:
name = obj['key']['key2']['name'] rescue ''
Wenn auf irgendeiner Ebene beim Zugriff auf den Hash eine Null-Ausnahme ausgelöst wird, sollte sie von der Rettung abgefangen werden und mir "" geben, was ich will. Ich könnte auch den Namen auf setzennil
wenn das das gewünschte Verhalten wäre.
Besteht dabei eine bekannte Gefahr? Ich frage, weil das zu schön scheint, um wahr zu sein. Ich habe so viel hässlichen Code, dass ich ihn gerne loswerden würde. Er sieht aus wie das erste Codebeispiel.