Io uso rescue
per tutto, non solo per "salvare" le eccezioni. Voglio dire, mi piace il modo in cui mi risparmia la verifica e il doppio controllo dei dati.Sto abusando di "salvataggio" per assegni nulli?
Ad esempio, diciamo che ho un modello Item
quello che può o non può avere un User
. Poi, quando voglio ottenere il nome del proprietario della voce scrivo:
item.user.name rescue ""
invece di qualcosa come
item.user.nil? ? "" : item.user.name
Fa lo stesso pensare, dal momento che nil.name
grilletto un'eccezione che ho soccorso con ""
, ma non sono abbastanza sicuro che questa è una buona pratica. Rende ciò che voglio e lo fa con meno codice, ma ... non lo so, tutte le parole che mi vengono in questo modo mi fanno sentire insicuro.
È una cattiva pratica o è un abuso valido della parola chiave rescue
?
Avdi Grimm sostiene che 'try' è un codice olfattivo http://devblog.avdi.org/2011/06/28/do-or-do-not-there-is-no-try/ e http://devblog.avdi.org/2011/07/05/demeter-its-not-just-a-good-idea-its-the-law/, quindi non è solo il modo in cui lo stai facendo è male, ma quello che stai cercando di fare è male. –
@AndrewGrimm qualche relazione? – ybakos
@ybakos Non lo so, ma non siamo [fratelli] (http://en.wikipedia.org/wiki/Brothers_Grimm). –