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

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

यदि आप मेरे जैसे हैं, तो आप रेल कंसोल का बहुत उपयोग करते हैं। और अब तक मुझे लगता है कि हर कोई इस बात से सहमत है कि रेल कंसोल के लिए Pry सबसे अच्छी चीज है ... ठीक है, कभी भी।

बिल्ट-इन टू प्राइ कुछ बहुत ही शानदार विशेषताएं हैं जो साधारण पुराने IRB की तुलना में अपवादों के साथ काम करना बहुत आसान बनाती हैं।

पूरा बैकट्रेस देखें

जब Pry (या उस मामले के लिए IRB) में अपवाद होते हैं, तो आपको बैकट्रेस के संक्षिप्त संस्करण के साथ प्रस्तुत किया जाता है। यह आमतौर पर काफी अच्छा होता है, लेकिन हमेशा नहीं।

pry में आप wtf -v कमांड का उपयोग करके नवीनतम अपवाद का पूरा बैकट्रेस देख सकते हैं। यदि आप -v ध्वज को छोड़ देते हैं, तो आपको संक्षिप्त बैकट्रेस मिलता है।

Pry . में अपवादों के साथ कार्य करना नवीनतम बैकट्रेस तक पहुंचने के लिए wtf कमांड का उपयोग करें

एक्सेस अपवाद डेटा

अपवादों में अक्सर दिलचस्प डेटा जुड़ा होता है। जब आईआरबी में कोई अपवाद होता है तो आप केवल कक्षा का नाम और त्रुटि संदेश देख सकते हैं। लेकिन Pry के साथ आपके पास वास्तविक अपवाद वस्तु तक पहुंच है। इसका मतलब है कि आप जो भी डेटा चाहते हैं, उसमें पहुंच सकते हैं और निकाल सकते हैं।

सबसे हाल ही में उठाया गया अपवाद प्राप्त करने के लिए, _ex_ . का उपयोग करें चर। रूबी के अंतर्निर्मित $! . के विपरीत चर, इसका उपयोग करने के लिए आपको बचाव ब्लॉक के अंदर होने की आवश्यकता नहीं है।

Pry . में अपवादों के साथ कार्य करना पूर्व का प्रयोग करें सबसे हाल के अपवाद तक पहुंचने के लिए स्थानीय चर

अपवादों के प्रदर्शित होने के तरीके को अनुकूलित करें

मान लीजिए कि आप हमेशा पूर्ण बैकट्रेस देखना चाहते हैं जब आप शिकार में हों? आप डिफ़ॉल्ट अपवाद हैंडलर को ओवरराइड करके ऐसा कर सकते हैं।

बस ~/.pryrc खोलें और इसे इस तरह बनाएं:

# This code was mostly taken from the default exception handler. 
# You can see it here: https://github.com/pry/pry/blob/master/lib/pry.rb

Pry.config.exception_handler = proc do |output, exception, _|
  if UserError === exception && SyntaxError === exception
      output.puts "SyntaxError: #{exception.message.sub(/.*syntax error, */m, '')}"
  else
    output.puts "#{exception.class}: #{exception.message}"
    output.puts "from #{exception.backtrace}"   
  end
end

आप अपने सभी Pry अपवादों को Honeybagger में लॉग इन करने जैसी पागल चीजें भी कर सकते हैं। :)

  1. CSS3 फ़िल्टर प्रभाव के साथ कार्य करना

    CSS3 में फ़िल्टर प्रभाव सेट करने के लिए, फ़िल्टर गुण का उपयोग करें। निम्नलिखित फ़िल्टर प्रभाव सेट किए जा सकते हैं - धुंधला () | चमक () | कंट्रास्ट () | ग्रेस्केल () | उलटा () | अस्पष्टता () | संतृप्त () | यूआरएल (); CSS3 में फ़िल्टर प्रभाव का उपयोग करने के लिए कोड निम्नलिखित है - उदाहरण img{ मार्जि

  1. C++ में अपवाद कैसे काम करते हैं?

    सी ++ में, अपवाद हैंडलिंग रनटाइम त्रुटियों को संभालने की एक प्रक्रिया है। अपवाद एक घटना है जिसे सी ++ में रनटाइम पर फेंक दिया जाता है। सभी अपवाद std::Exception वर्ग से लिए गए हैं। यह एक रनटाइम त्रुटि है जिसे संभाला जा सकता है। अगर हम अपवाद को हैंडल नहीं करते हैं तो यह अपवाद संदेश को प्रिंट करता है औ

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

    रूबी में अपने स्वयं के अपवाद बनाना आसान है। बस इन चरणों का पालन करें: 1. एक नई कक्षा बनाएं अपवाद वर्ग हैं, जैसे रूबी में बाकी सब कुछ! एक नए प्रकार का अपवाद बनाने के लिए, बस एक ऐसा वर्ग बनाएं जो StandardError या उसके किसी बच्चे से विरासत में मिला हो। class MyError < StandardError end raise MyErr