Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Ruby

रूबी में कस्टम अपवाद

रूबी में अपने स्वयं के अपवाद बनाना आसान है। बस इन चरणों का पालन करें:

1. एक नई कक्षा बनाएं

अपवाद वर्ग हैं, जैसे रूबी में बाकी सब कुछ! एक नए प्रकार का अपवाद बनाने के लिए, बस एक ऐसा वर्ग बनाएं जो StandardError या उसके किसी बच्चे से विरासत में मिला हो।

class MyError < StandardError
end

raise MyError

परंपरा के अनुसार, नए अपवादों में "त्रुटि" में समाप्त होने वाले वर्ग के नाम होते हैं। अपने कस्टम अपवादों को मॉड्यूल के अंदर रखना भी एक अच्छा अभ्यास है। इसका मतलब है कि आपकी अंतिम त्रुटि कक्षाएं इस तरह दिखाई देंगी:ActiveRecord::RecordNotFound और Net::HTTP::ConnectionError

2. एक संदेश जोड़ें

प्रत्येक रूबी अपवाद वस्तु में एक संदेश विशेषता होती है। यह टेक्स्ट का लंबा हिस्सा है जो अपवाद नाम के आगे प्रिंट होता है

रूबी में कस्टम अपवाद अपवाद की संदेश विशेषता का उदाहरण

जब आप कोई अपवाद उठाते हैं तो आप एक संदेश निर्दिष्ट कर सकते हैं, जैसे:

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

इतना ही! रुबी में कस्टम त्रुटि या अपवाद बनाना वास्तव में मुश्किल नहीं है। जागरूक होने के लिए एक बात है। ध्यान दें कि उदाहरणों में हमें हमेशा StandardError से कैसे विरासत में मिला? यह जानबूझकर है। जबकि रुबी में एक अपवाद वर्ग है, आपको कभी भी इससे सीधे प्राप्त नहीं करना चाहिए। इसके बारे में अधिक जानकारी के लिए, अपवाद और मानक त्रुटि के बीच अंतर के बारे में हमारा लेख देखें


  1. Pry . में अपवादों के साथ कार्य करना

    यदि आप मेरे जैसे हैं, तो आप रेल कंसोल का बहुत उपयोग करते हैं। और अब तक मुझे लगता है कि हर कोई इस बात से सहमत है कि रेल कंसोल के लिए Pry सबसे अच्छी चीज है ... ठीक है, कभी भी। बिल्ट-इन टू प्राइ कुछ बहुत ही शानदार विशेषताएं हैं जो साधारण पुराने IRB की तुलना में अपवादों के साथ काम करना बहुत आसान बनाती

  1. रूबी में अपवादों में संदर्भ डेटा कैसे जोड़ें

    कभी-कभी मानक बैकट्रैक/त्रुटि संदेश कॉम्बो पर्याप्त नहीं होता है। त्रुटि के कारण का पता लगाने के लिए कभी-कभी आपको अतिरिक्त डेटा की आवश्यकता होती है। सौभाग्य से, रूबी में करना बहुत आसान है। त्रुटि संदेश को अनुकूलित करना अपनी त्रुटियों में प्रासंगिक जानकारी जोड़ने का सबसे आसान तरीका इसे अपवाद के संदेश

  1. रूबी में डेकोरेटर डिजाइन पैटर्न

    डेकोरेटर डिजाइन पैटर्न क्या है? और आप अपने रूबी प्रोजेक्ट्स में इस पैटर्न का उपयोग कैसे कर सकते हैं? डेकोरेटर डिज़ाइन पैटर्न नई क्षमताओं . जोड़कर किसी ऑब्जेक्ट को बेहतर बनाने में आपकी सहायता करता है इसमें बिना कक्षा बदले। आइए एक उदाहरण देखें! लॉगिंग और प्रदर्शन इस उदाहरण में हम रेस्ट-क्लाइंट जैस