hashから要素を取り出すとき、nilだとエラーとなります。 [1] pry(main)> {}[:nanika] => nil [2] pry(main)> nil[:nanika] NoMethodError: undefined method `[]' for nil:NilClass そこでtryの登場ですが、hash#fetchは登録キーがないとエラーがはみ出てきます。 [3] pry(main)> {}.try(:fetch, :nanika) KeyError: key not found: :nanika [4] pry(main)> {nanika: 1}.try(:fetch, :nanika) => 1 hash#fetchにはdefaultを渡してあげるとKeyErrorが防げます。 これで、nilに対しても、keyがないときでもエラーが起きません。 [5] pry