rescue
最近、ある行で問題が発生した場合に備えて、その行で使用できることを学びました( http://www.rubyinside.com/21-ruby-tricks-902.htmlヒント#21を参照)。以前は次のようなコードがありました。
if obj['key'] && obj['key']['key2'] && obj['key']['key2']['name']
name = obj['key']['key2']['name']
else
name = ''
end
このrescue
メソッドを使用すると、そのコードを次のようなものに変更できると思います。
name = obj['key']['key2']['name'] rescue ''
ハッシュへのアクセスのいずれかのレベルでnil例外がスローされた場合、それはレスキューによってキャッチされ、私に''を与える必要があります。これは私が望むものです。nil
それが望ましい動作である場合は、名前をに設定することもできます。
これを行うことで既知の危険はありますか?これはあまりにも良さそうなので、私は尋ねます。私は非常に醜いコードを持っているので、最初のコード例のようにそれを取り除きたいと思います。