SORU
19 Mayıs 2011, PERŞEMBE


En iyi Uygulama: vs Kurtarma Deneyin

En iyi yöntem nedir? try rescue kullanmak için?

user.try(:email)

VS

user.email rescue nil

post.try(:comments).try(:first).try(:author)

VS

post.comments.first.author rescue nil

Bunlardan herhangi birini kullanarak herhangi bir fark var mı?

CEVAP
19 Mayıs 2011, PERŞEMBE


Deneyin ve farklı amaçlar kurtarma hizmet. try amacı yapmak zorunda kaydetmek için:

if user && user.email

Ya da herhangi bir durumda üst nesne muhtemelen nil, NilClass bir NoMethodError neden olacak. rescue amacı, yöntem çağırma tarafından atılan özel durumları ele alır. Eğer user.email, o zaman " demekten bir istisna bekliyorsanız rescue nil köpüren kadar özel durumu önlemek için.

Genel olarak, diyebilirim kullanmaktan kaçının rescue nil dışında açıkça ne istisnalar vardır tahlisiye çünkü olabilirsin tahlisiye farklı bir durum, ve sen asla biliyorum çünkü rescue nil ki önlemek senden görmek. En azından belki de bu günlük:

begin
  ...some code...
rescue => ex
  logger.error ex.message
end

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HBO

    HBO

    17 Mayıs 2006
  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • RobertDuskin

    RobertDuskin

    12 HAZİRAN 2008