Ruby में अपने स्वयं के अपवाद बनाना आसान है। बस इन चरणों का पालन करें:
1. एक नई क्लास बनाएं
अपवाद क्लास हैं, Ruby में बाकी सब की तरह! एक नए प्रकार का अपवाद बनाने के लिए, बस एक क्लास बनाएं जो StandardError, या उसके बच्चों में से एक से इनहेरिट करती है।
class MyError < StandardError end raise MyError
कन्वेंशन के अनुसार, नए अपवादों के क्लास नाम "Error" में समाप्त होते हैं। अपने कस्टम अपवादों को एक मॉड्यूल के अंदर रखना भी अच्छी प्रथा है। इसका मतलब है कि आपके अंतिम त्रुटि क्लास इस तरह दिखेंगे: `ActiveRecord::RecordNotFound` और `Net::HTTP::ConnectionError`।
2. एक संदेश जोड़ें
हर Ruby अपवाद ऑब्जेक्ट में एक मैसेज एट्रिब्यूट होता है। यह लंबा टेक्स्ट है जो अपवाद के नाम के आगे प्रिंट होता है
अपवाद के मैसेज एट्रिब्यूट का उदाहरण
आप अपवाद उठाते समय एक संदेश निर्दिष्ट कर सकते हैं, जैसे:
raise MyError, "My message"
और आप अपने कस्टम एरर क्लास में अपना कंस्ट्रक्टर जोड़कर एक डिफ़ॉल्ट संदेश जोड़ सकते हैं।
class MyError < StandardError def initialize(msg="My default message") super end end
3. अपने अपवाद में कस्टम डेटा एट्रिब्यूट जोड़ें
आप अपने अपवाद में कस्टम डेटा जोड़ सकते हैं जैसे आप किसी अन्य क्लास में करते। आइए अपने क्लास में एक एट्रिब्यूट रीडर जोड़ें और कंस्ट्रक्टर को अपडेट करें।
class MyError < StandardError attr_reader :thing def initialize(msg="My default message", thing="apple") @thing = thing super(msg) end end begin raise MyError.new("my message", "my thing") rescue => e puts e.thing # "my thing" end
बस! Ruby में एक कस्टम एरर या अपवाद बनाना वास्तव में इतना कठिन नहीं है। एक बात से अवगत रहें। ध्यान दें कि हमने उदाहरणों में हमेशा StandardError से इनहेरिट किया? यह जानबूझकर है। जबकि Ruby में एक Exception क्लास है, आपको **कभी भी** सीधे इससे इनहेरिट नहीं करना चाहिए। इस बारे में अधिक जानकारी के लिए, Exception और StandardError के बीच अंतर के बारे में हमारे आर्टिकल को देखें।