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

  • Abbeydabby0277's channel

    Abbeydabby02

    9 ŞUBAT 2012
  • Caroline Martin

    Caroline Mar

    19 EYLÜL 2008
  • monkophile

    monkophile

    25 Temmuz 2007