मेरे पास दो बचाव_ हैंडलर हैं, एक 404 हैंडलर हैं, और सभी हैंडलर पकड़ते हैं। पकड़ हमेशा सभी ActiveRecord :: RecordNotFound अपवादों के लिए बुलाया जाता है और 404 हैंडलर कभी नहीं बुलाया जाता है। मेरी उम्मीद यह है कि अधिक विशिष्टता वाले हैंडलर को बुलाया जाएगा लेकिन ऐसा नहीं होता है।मैं कैसे निर्धारित करूं कि कौन से अपवाद हैंडलर rescue_from रेल में चयन करेंगे?
application_controller.rb
# ActiveRecord 404
rescue_from ActiveRecord::RecordNotFound do |e|
...
end
# Catch all unhandled exceptions
rescue_from Exception do |e|
...
end
api docs for rescue_from निम्नलिखित कहते हैं:
हैंडलर लिए गए हैं। उन्हें से नीचे तक, और पदानुक्रम तक दाएं से बाएं से खोजा जाता है। प्रथम श्रेणी का हैंडलर जिसके लिए upgrade.is_a? (Klass) सत्य है, अगर कोई भी है।
क्या मैं इस बारे में गलत बयान की व्याख्या कर रहा हूं। मैं उस व्यवहार को कैसे प्राप्त करूं जो मैं ढूंढ रहा हूं?
मैंने पहले भी कोशिश की और यह काम नहीं लग रहा था लेकिन अब यह करता है। धन्यवाद। –
मेरा सुझाव है कि 'अपवाद' को कभी भी न बचाएं क्योंकि यह अन्य सभी अपवादों की ईश्वर मां है। यह आपकी वाक्यविन्यास त्रुटियों या जो कुछ भी बचाएगा। – Hendrik
स्टैंडर्ड एरर कैच-ऑल क्लास होगा। – Duke