Ruby Oneline Rescue

Recientemente aprendí que puedes usarrescue en una línea de código en caso de que algo salga mal en esa línea (verhttp://www.rubyinside.com/21-ruby-tricks-902.html Consejo # 21). Tengo un código que solía tener este aspecto:

if obj['key'] && obj['key']['key2'] && obj['key']['key2']['name']
  name = obj['key']['key2']['name']
else
  name = ''
end

Con elrescue Método, creo que puedo cambiar ese código en algo como esto:

name = obj['key']['key2']['name'] rescue ''

Si se lanza una excepción nula a cualquier nivel de acceso al hash, debería ser atrapado por el rescate y darme '', que es lo que quiero. También podría optar por establecer el nombre anil Si ese fuera el comportamiento deseado.

¿Hay algún peligro conocido al hacer esto? Lo pregunto porque esto parece demasiado bueno para ser verdad. Tengo un código tan feo que me encantaría deshacerme de ese aspecto como el primer ejemplo de código.

Respuestas a la pregunta(3)

Su respuesta a la pregunta