Ruby Oneline Rescue

Я недавно узнал, что вы можете использовать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 если бы это было желаемое поведение.

Есть ли известная опасность в этом? Я спрашиваю, потому что это кажется слишком хорошим, чтобы быть правдой. У меня так много уродливого кода, что яЯ хотел бы избавиться от этого, похоже на первый пример кода.

Ответы на вопрос(3)

Ваш ответ на вопрос