[Ruby-on-rails] रेल: रेल (आईडी) रेल में अपवाद क्यों उठाता है?


Answers

रनको के स्पष्टीकरण के आगे, वास्तव में यह चुनना बहुत उपयोगी है कि अपवाद उठाया गया है या नहीं। मैं एक ब्लॉग एप्लिकेशन पर काम कर रहा हूं और मैं अगली या पिछली ब्लॉग एंट्री देखने के लिए समर्थन जोड़ना चाहता था। मैं अपने Post मॉडल में दो उदाहरण विधियों को जोड़ने में सक्षम था जो पहली पोस्ट देखने पर पिछली पोस्ट पाने का प्रयास करते समय पिछली पोस्ट को देखने का प्रयास करते हैं, या अंतिम पोस्ट देखते समय अगली पोस्ट:

def next
  Post.find_by_id(id + 1)
end

def previous
  Post.find_by_id(id - 1)
end

यह मेरे सहायक कोड से बचाता है जो सशर्त रूप से पिछले पोस्ट / अगला पोस्ट लिंक को RecordNotFound अपवाद को संभालने से उत्पन्न करता है, जो खराब होगा क्योंकि यह नियंत्रण प्रवाह के लिए अपवाद का उपयोग करेगा।

Question

संभावित डुप्लिकेट:
Model.find (1) ActiveRecord त्रुटि देता है जब आईडी 1 मौजूद नहीं है

यदि डेटाबेस में 1 की आईडी वाला कोई उपयोगकर्ता नहीं है, तो User.find(1) प्रयास अपवाद उठाएगा।

ऐसा क्यों है?