एक त्वरित साइड-नोट
<पी> यह पोस्ट ऐपसिग्नल के साथ रूबी में डिबगिंग की स्वाभाविक प्रगति है, इसलिए हम डिबगिंग के अवलोकन और कस्टम अपवादों के परिचय के लिए पहले इसे पढ़ने की सलाह देते हैं।रूबी के साथ एक अपवाद को कैसे बचाएं
<पी> रूबी के पासException नामक एक क्लास है , जिससे त्रुटि प्रबंधन कक्षाएं विरासत में मिलती हैं। इस अनुभाग में, हम अपना कस्टम अपवाद बनाने से पहले रूबी के संरचनात्मक अपवाद प्रवाह को बेहतर ढंग से समझेंगे। <पी> Exception रूबी में मुख्य अपवाद वर्ग है, और rescue Exception Exception से प्राप्त सभी अपवादों को पकड़ लेगा . हमारे ऐप में इसका उपयोग करना सर्वोत्तम अभ्यास नहीं है, क्योंकि यह रूबी द्वारा आंतरिक रूप से उपयोग किए गए सभी अपवादों को पकड़ लेगा। <पी> रूबी में अपवाद को बचाने का सबसे आसान तरीका एक begin ... rescue बनाना है नीचे दिए गए उदाहरण की तरह कोड का ब्लॉक: <पी> Exception से सभी अपवादों को पकड़ लेंगे, हमें फ़िल्टर करने के लिए कुछ और विशिष्ट का उपयोग करने का प्रयास करना चाहिए और केवल वही त्रुटि प्राप्त करनी चाहिए जो हम चाहते हैं। एक उदाहरण StandardError है क्लास, एक मानक बचावकर्ता जिसका उपयोग रूबी के आंतरिक अपवादों को अनदेखा करके एप्लिकेशन कोड त्रुटियों से संबंधित अपवादों को पकड़ने के लिए किया जाता है। <पी> StandardException को पकड़ने के लिए , आप नीचे दिए गए उदाहरण का उपयोग कर सकते हैं: <पी> या, यदि कोई अपवाद वर्ग नहीं बताया गया है, तो रूबी StandardException द्वारा संभाले गए अपवादों को वापस कर देगी क्लास. <पी> रूबी के साथ एक कस्टम अपवाद बनाने के लिए, आप संभवतः एक क्लास बनाएंगे जो StandardError से प्राप्त होगी . हम इसे अगले कुछ अनुभागों में कवर करेंगे। <पी> अपवादों के बारे में अधिक जानने और विरासत में मिलने वाले सर्वोत्तम अपवाद को खोजने के लिए, रूबी की अपवाद सूची देखें। रूबी अपवाद में अतिरिक्त जानकारी जोड़ना
<पी> प्रासंगिक जानकारी भेजे बिना एक नया अपवाद बनाने से समस्या को डीबग करने - पहचानने और ठीक करने में प्रभावी ढंग से मदद नहीं मिलेगी। आपको त्रुटि विवरण जोड़ना होगा. यहां, हम देखेंगे कि ऑब्जेक्ट से कस्टम अपवाद तक जानकारी कैसे पास की जाए। <पी> आइए हम जिस डेटा को लॉग करना चाहते हैं उसे प्राप्त करने के लिए एक नया कस्टम अपवाद बनाएं। जैसा कि पिछले अनुभाग में बताया गया है, कस्टम अपवाद कोStandardError से इनहेरिट करना होगा . <पी> इस कार्यान्वयन का परीक्षण करने के लिए आप एक सरल रेल परियोजना का उपयोग कर सकते हैं। exceptions नामक एक नया फ़ोल्डर बनाएं app के अंदर फ़ोल्डर और custom_exception.rb नामक एक वर्ग आपके रेल प्रोजेक्ट में। <पी> इस अपवाद वर्ग में, हम उन सभी सूचनाओं को परिभाषित कर सकते हैं जिन्हें लॉग में दिखाने की आवश्यकता है और हम अपने डेटा के लिए चार विशेषताओं का उपयोग करते हैं: - अपवाद की गणना करने के लिए एक कोड
- एक नाम
- एक सूचनात्मक संदेश
- रूबी द्वारा अपवाद के बारे में आंतरिक जानकारी पहले ही प्रदान की जा चुकी है
begin...rescue बनाते हैं CustomException को बढ़ाने के लिए ब्लॉक करें और पैरामीटर को अपवाद विशेषताओं में पास करें। <पी> यह उपयोगी लगता है, तो आइए कार्यान्वयन जारी रखें और अपवाद लॉग को अनुकूलित करने के लिए इस डेटा का उपयोग करें। रूबी में एक अपवाद का विस्तार
<पी> एक अपवाद का विस्तार हमें अनुकूलन को अधिक विशिष्ट और पुन:प्रयोज्य स्तर तक बढ़ाने की अनुमति देता है। जिस प्रकार रूबी के पास विभिन्न प्रकार की त्रुटियों के लिए कई अपवाद हैं, उसी प्रकार हम भी अपने सिस्टम में प्रोग्रामिंग की इस पंक्ति का अनुसरण कर सकते हैं। <पी> इसके बाद, आइए समझें कि हमारे अपवाद को कैसे ओवरराइड करें और इसे ऐसे संदर्भ में उपयोग करें जो विस्तार की मांग करता है। <पी> लॉग में जानकारी ढूँढना एक दर्दनाक गतिविधि है। डेवलपर्स अक्सर त्रुटियों या खोज और फ़िल्टर करने के तरीके के बारे में अधिक जानकारी शामिल न करने के लिए खुद को दोषी मानते हैं। यदि आप इसे प्रदान करने वाले किसी भी निगरानी उपकरण का उपयोग नहीं कर रहे हैं, तो सार्थक डेटा सहित आपको निकट भविष्य में बचाया जा सकता है। <पी> प्रो-टिप :ऐपसिग्नल में कस्टम अपवादों को कैसे सेट अप और ट्रैक करें, इसके बारे में जानकारी के लिए हमारी पोस्ट ऐपसिग्नल के साथ रूबी में डिबगिंग में 'ऐपसिग्नल के साथ रूबी में डिबगिंग अपवाद' अनुभाग देखें। पी> <पी> नीचे दिए गए उदाहरण में, हम लॉग में अपवादों के प्रदर्शन को अनुकूलित करेंगे। प्रारंभ में, आप सोच सकते हैं कि यह डेटा दिखाने का एक हल्का और सुंदर तरीका है। हालाँकि, डेटा में उपयोग किए गए कीवर्ड त्रुटि खोजने और एप्लिकेशन की निगरानी करने वाले किसी भी व्यक्ति की मदद करने के लिए महत्वपूर्ण हैं। <पी> अपने Gemfile में नीचे दिए गए कोड को शामिल करके रंगीन रत्न को अपने प्रोजेक्ट में जोड़ें। <पी> कलराइज़ जेम इंस्टॉल करने और अपना रेल एप्लिकेशन लॉन्च करने के लिए बंडल चलाएँ। <पी> अब, अपने अपवाद वर्ग में, रत्न आयात करें। विशेषताओं को स्वरूपित तरीके से प्रिंट करें, ताकि किसी महत्वपूर्ण त्रुटि को देखना और तुरंत ढूंढना आसान हो। <पी> इस विज़ुअल अनुकूलन के परिणाम देखें और अपना प्रारूप और शैली बनाने के लिए कुछ विकल्पों का परीक्षण करें। <पी>
समापन और अगले चरण
<पी> इस पोस्ट में, हमने आपके लॉग में रूबी अपवाद को अनुकूलित और हाइलाइट करने का तरीका बताया। कई अन्य अनुकूलन संभव हैं, लेकिन जो सबसे महत्वपूर्ण है वह यह है कि आप अपने एप्लिकेशन से संबंधित अपवादों को संभालें। और याद रखें, सभी अपवादों पर समान स्वरूपण शैली लागू न करें, जैसा कि रेल पहले से ही करता है। <पी> हैप्पी कोडिंग! <पी> पी.एस. यदि आप प्रेस से हटते ही रूबी मैजिक पोस्ट पढ़ना चाहते हैं, तो हमारे रूबी मैजिक न्यूज़लेटर की सदस्यता लें और एक भी पोस्ट न चूकें! पी>