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ş:
İyi bir uygulama-dışında-başka deneyin...
Değişim bir üretim için uygulama Rayla...
Uygulama servis enjekte.config...
Bir dizin oluşturma uygulama kısayol...
Nasıl farklı bir uygulama seçmek için....