Я использую rescue
для всего, а не только для "спасения" исключений. Я имею в виду, мне просто нравится, как это избавляет меня от проверки и двойной проверки данных.
Например, допустим, у меня есть модель Item
, которая может иметь или не иметь User
. Затем, когда я хочу получить имя владельца предмета, я пишу:
item.user.name rescue ""
вместо чего-то вроде
item.user.nil? ? "" : item.user.name
Это заставляет думать то же самое, поскольку nil.name
вызывает исключение, которое я спасаю с помощью ""
, но я не уверен, что это хорошая практика. Это делает то, что я хочу, и делает это с меньшим количеством кода, но ... я не знаю, все эти rescue
слова здесь и там заставляют меня чувствовать себя неуверенно.
Это плохая практика или допустимо злоупотребление ключевым словом rescue
?