Ruby Oneline Rescue
Niedawno dowiedziałem się, że możesz użyćrescue
na linii kodu na wypadek, gdyby coś poszło nie tak (patrzhttp://www.rubyinside.com/21-ruby-tricks-902.html Porada 21). Mam kod, który kiedyś wyglądał tak:
if obj['key'] && obj['key']['key2'] && obj['key']['key2']['name']
name = obj['key']['key2']['name']
else
name = ''
end
Zrescue
metoda, wierzę, że mogę zmienić ten kod na coś takiego:
name = obj['key']['key2']['name'] rescue ''
Jeśli zerowy wyjątek zostanie rzucony na dowolnym poziomie dostępu do skrótu, powinien zostać złapany przez ratunek i dać mi '', czego chcę. Mogę też wybrać ustawienie nazwy nanil
jeśli to było pożądane zachowanie.
Czy istnieje jakieś znane niebezpieczeństwo? Pytam, ponieważ wydaje się to zbyt piękne, aby mogło być prawdziwe. Mam tak brzydki kod, że chciałbym się go pozbyć, który wygląda jak pierwszy przykład kodu.