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

Pry में अपवाद हैंडलिंग में महारत हासिल करें: Rails कंसोल के लिए उन्नत तकनीकें

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

Pry में अंतर्निहित कुछ वास्तव में कूल फीचर्स हैं जो अपवादों के साथ काम करना सादे पुराने IRB की तुलना में बहुत आसान बनाते हैं।

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

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

Pry में आप `wtf -v` कमांड का उपयोग करके सबसे हालिया अपवाद का पूर्ण बैकट्रेस देख सकते हैं। यदि आप -v फ्लैग छोड़ देते हैं, तो आपको संक्षिप्त बैकट्रेस मिलता है।

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

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

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

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

Pry में अपवाद हैंडलिंग में महारत हासिल करें: Rails कंसोल के लिए उन्नत तकनीकें सबसे हालिया अपवाद तक पहुंचने के लिए `_ex_` लोकल वेरिएबल का उपयोग करें

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

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

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

# यह कोड ज्यादातर डिफ़ॉल्ट अपवाद हैंडलर से लिया गया था। # आप इसे यहां देख सकते हैं: 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 अपवादों को Honeybadger पर लॉग करना। :)


  1. CSS3 फ़िल्टर इफेक्ट्स के साथ काम करना CSS3 फ़िल्टर इफेक्ट्स के साथ काम करना

    CSS3 में फ़िल्टर इफेक्ट्स सेट करने के लिए, filter प्रॉपर्टी का उपयोग करें। निम्न फ़िल्टर इफेक्ट्स सेट किए जा सकते हैं -blur() | brightness() | contrast() | grayscale() | invert() | opacity() | saturate() | url();CSS3 में फ़िल्टर इफेक्ट्स का उपयोग करने के लिए कोड निम्न है -उदाहरण<!DOCTYPE html>

  1. C++ में एक्सेप्शन कैसे काम करते हैं C++ में एक्सेप्शन कैसे काम करते हैं

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

  1. Ruby में कस्टम अपवाद में महारत हासिल करें: एक चरण-दर-चरण गाइड Ruby में कस्टम अपवाद में महारत हासिल करें: एक चरण-दर-चरण गाइड

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