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.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage