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

  • ☆ SUB4SUB CENTER! ☆ spam here

    ☆ SUB4SUB

    22 ŞUBAT 2010
  • bombjack2991

    bombjack2991

    29 HAZİRAN 2008
  • DrePwn

    DrePwn

    22 Temmuz 2011