उन्नत पायथन विकास पाठ्यक्रम
अध्याय
>
स्तर
अपवाद प्रबंधन
अपवाद प्रबंधन
उद्देश्य
सामान को बॉक्स में पैक करें और एक्सेप्शन्स का उपयोग करके किसी भी त्रुटि को पकड़ें।
कुछ आपातकालीन सामग्रियाँ हैं जिन्हें किट्स में पैक करके बाद में उपयोग के लिए क्रेट्स में संग्रहीत करना है। यह काम काफी सरल है और आपने जो सामान्य फंक्शन्स सीखे हैं उनका उपयोग करके इसे अंजाम दिया जा सकता है, हालांकि कभी-कभी चीजें योजना के अनुसार नहीं होतीं। प्रोग्रामिंग करते समय आपने देखा होगा कि कभी-कभी स्क्रीन पर त्रुटियाँ आ जाती हैं, और जहाँ समस्या हुई है, एडिटर पर लाल निशान दिखते हैं। आप इन त्रुटियों को रोकने के लिए try और except कोड ब्लॉक्स सेट करके इनका निवारण कर सकते हैं।
ये कोड ब्लॉक्स एक्सेप्शन्स को सेट करने और आपकी कोड को रोके बिना त्रुटियों को पकड़ने के लिए उपयोग किए जाते हैं। इसका काम करने का तरीका यह है कि आप ऐसे कोड पर try का उपयोग करते हैं जो समस्या उत्पन्न करने वाला है या त्रुटि के प्रति प्रवण हो सकता है और अगर कोई त्रुटि होती है तो except का उपयोग करके उस कोड को किसी अन्य कोड से बदल देते हैं, उदाहरण के लिए:
#The try code block attempts to run a code try: number + number + string #This code yeilds an error, you can't sum numbers with string except: #If an error occurs the except code block is run instead number + number + number #The code is switched out by a sum of three numbers instead
शुरुआत करने के लिए, फ़ील्ड में मौजूद सभी सामग्रियों को इकट्ठा करें, जो हैं: वाटर कैन, "thread" और तीन रंगीन कंबल: "blue blanket", "red blanket", "green blanket"। मानचित्र के शीर्ष पर जाकर तीनों कंबल इकट्ठा करें, लाइट X निशान तक जाएं और कंटेनर से "thread" प्राप्त करने के लिए collect() फंक्शन का उपयोग करें। इसके बाद मानचित्र के नीचे जाकर सभी वाटर कैन इकट्ठा करें।
एक बार सभी सामग्रियाँ इकट्ठा हो जाने के बाद, नीले कार्पेट पर स्थित डार्क X निशान के पास जाएं और अभी-अभी इकट्ठा की गई सामग्रियों को रखने की प्रक्रिया शुरू करें। पहले वाटर और thread को क्रमशः 2 और 3 यूनिट्स वाले वेरिएबल्स में जोड़ें, जैसा कि इस उदाहरण में किया गया है: water_can = 2 और thread = 3। फिर निम्नलिखित प्रारूप में पहले से बनाए गए वेरिएबल्स को रंगीन कंबलों के साथ जोड़कर किट्स को स्थापित करें:
blue_kit = water_can + thread + "blue blanket" red_kit = water_can + thread + "red blanket" green_kit = water_can + thread + "green blanket" # Add all elements together into kits for ease of storage
एक बार जब किट्स blue_kit, red_kit, green_kit वेरिएबल्स में तैयार हो जाएं, तो इन्हें संबंधित रंग के क्रेट्स में रखने का समय आता है, हालांकि आपने देखा होगा कि कोड त्रुटि दे रहा है। लेकिन क्यों? सबकुछ ठीक होने के बावजूद निर्देशों का पालन किया गया था। कभी-कभी, जबकि यह सहज लगता है, चीजें वैसी नहीं होतीं जैसा हम चाहते हैं, इस मामले में आप एक वेरिएबल में मौजूद स्ट्रिंग के साथ एक संख्या को जोड़ नहीं सकते।
तो हम इसका समाधान कैसे करेंगे? try / except कोड ब्लॉक्स का उपयोग करके त्रुटि को पकड़ें और उसे उपयुक्त प्रतिस्थापन में परिवर्तित करें। तीन (3) वेरिएबल्स में से प्रत्येक के लिए, इन एक्सेप्शन्स को लागू करें, जो त्रुटि की स्थिति में कोड को एक विशिष्ट स्ट्रिंग के बजाय एक अंक में बदल देते हैं:
try: blue_kit = water_can + thread + "blue blanket" except: blue_kit = water_can + thread + 1
जबकि इस मामले में हम त्रुटि से अवगत हैं, कुछ परिस्थितियों में वेरिएबल्स के अंदर मान उतने सरल नहीं हो सकते या विशेष परिस्थितियों के आधार पर अलग हो सकते हैं, जिससे यह एक उपयोगी उपकरण बन जाता है रंटाइम त्रुटियों को पकड़ने या समस्या निवारण (troubleshooting) के लिए।
लाइट कक्षरों पर स्थित रंगीन कार्पेट्स के ऊपर डार्क X निशानों तक जाकर, क्रेट्स की ओर देखकर और संबंधित रंग के किट वेरिएबल्स को सही क्रेट्स पर रखने के लिए place() फंक्शन का उपयोग करके स्तर को पूरा करें।