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