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

  • apenney888

    apenney888

    27 EKİM 2010
  • habpsu

    habpsu

    25 Temmuz 2007
  • spectragirlz16's channel

    spectragirlz

    22 Ocak 2012