उन्नत पायथन विकास पाठ्यक्रम
अध्याय
>
स्तर
अपवाद प्रबंधन
अपवाद वर्गों को अनुकूलित करना
उद्देश्य
एकत्रित वर्षा जल को सत्यापित करें और सुनिश्चित करें कि इसे सही ढंग से संसाधित और स्थानांतरित किया जा रहा है, अनुकूलन अपवाद कक्षाओं के माध्यम से।
छत परिसर के सबसे छोर पर एक वर्षा जल का टैंक है, इस पानी को फिल्टर करके भवन के विभिन्न हिस्सों में भेजा जाता है। ऊपरी दीवार पर कुछ वाल्व पानी के दबाव को नियंत्रित करते हैं, जबकि अंतिम गोदाम में विभिन्न जल हीटर रखे गए हैं। मशीनरी का संचालन चुनौतीपूर्ण हो सकता है, लेकिन उनके संचालन को त्रुटि कोड निर्धारित करके और प्रभावी काउंटरमेज़र स्थापित करके सुचारू बनाया जा सकता है। यह आपके द्वारा बनाए गए कस्टम अपवादों के लिए कस्टम अपवाद कक्षाओं को अनुकूलित करके हासिल किया जाता है।
कोड संपादक में दो कस्टम अपवाद कक्षाएँ स्थापित की गई हैं, और उनके उपयोग करने की आपकी क्षमता किसी भी मशीनरी समस्या का समाधान करने में महत्वपूर्ण होगी। पहली अपवाद जल दबाव को समस्या सुलझाने के लिए है। इसे वाल्व के साथ उपयोग किया जाना है ताकि यह सुनिश्चित किया जा सके कि पानी सही ढंग से परिसर में प्रवेश कर रहा है या दबाव को समायोजित करने की आवश्यकता है। यह अपवाद अलग-अलग कार्रवाई करता है यदि दबाव 100 से कम या 300 से अधिक होता है, दबाव एक तर्क है जिसे उपयोगकर्ता को प्रदान करना होता है। एक बार सक्रिय हो जाने पर, एक कस्टम पॉप अप में त्रुटि कोड और संदेश प्रदर्शित होता है।
class PressureError(Exception):
def __init__(self, pressure, message="Water pressure is offset, pressure is: ", error_code=404):
self.pressure = pressure
self.message = message
self.error_code = error_code
super().__init__(self.message)
async def __str__(self):
await player.write("[Error: %s {%s %s}]" % (self.error_code , self.message, self.pressure))
if self.pressure < 100:
return ("Valve has been closed")
if self.pressure > 360:
return ("Valve has been opened")
दूसरी कस्टम अपवाद कक्षा जल हीटरों में तापमान को मॉड्यूलेट करने के लिए है, यदि तापमान बहुत कम या बहुत अधिक है तो आपको त्रुटि को सुधारने के लिए एक नया तापमान तर्क के रूप में दर्ज करना होगा।
class TemperatureError(Exception):
def __init__(self, temp, message="Temperature is not appropiate, enter new temperature: ", error_code=808):
self.temp = temp
self.message = message
self.error_code = error_code
super().__init__(self.message)
async def __str__(self):
await player.write("[Error: %s {%s %s}]" % (self.error_code , self.message, self.temp))
return ("Temperature Corrected")
शुरू करने के लिए, हरे कालीन पर स्थित प्रकाश X चिन्ह की ओर जाएँ और वाल्व वाले टैंक का सामना करें, यहाँ चार (4) ऐसे हैं जो टैंक में पंप किए जा रहे पानी के दबाव को नियंत्रित करते हैं। यहां चार (4) परिवर्तनीय स्थिरांक हैं: green_pressure, red_pressure, blue_pressure और orange_pressure, ये संबंधित रंगीन कालीनों के टैंकों के दबाव को दर्शाते हैं।
सभी प्रकाश X चिन्हों पर, प्रत्येक टैंक में दबाव उपयुक्त है या नहीं सत्यापित करने के लिए try /except और else कोड ब्लॉक अनुक्रम का उपयोग करें। यदि दबाव 100 से कम है या 300 से अधिक है तो कस्टम PressureError अपवाद को उठाएं और दबाव को तर्क के रूप में जोड़ें। यदि सक्रिय हुआ तो यह त्रुटि कोड उठाएगा और एक सुधार जारी करेगा, अन्यथा else खंड सक्रिय हो जाएगा जिससे टैंक में दबाव उपयुक्त होने की पुष्टि होगी। उदाहरण के लिए:
try: if green_pressure < 100 or green_pressure > 360: raise PressureError(green_pressure) except PressureError as x: player.speak(x) else: player.speak( "Pressure is appropriate" )
इसे सभी प्रकाश X चिन्हों पर करें, संबंधित रंगीन कालीनों के लिए परिवर्तनीय स्थिरांक का उपयोग करते हुए और आवश्यकतानुसार दबाव वाल्व की पुष्टि या समायोजन करें।
काम पूरा होने के बाद, स्वर्ण X चिन्ह की ओर जाएँ और जल हीटर वाले गोदाम तक पहुँचने के लिए open() फंक्शन का उपयोग करें, एक बार अंदर जाने के बाद, गोदाम के अंदर स्थित स्वर्ण X चिन्ह की ओर जाएँ और काउंटर पर लगे मेमो को पढ़ने के लिए read() फंक्शन का उपयोग करें। यह मेमो आपको प्रत्येक जल हीटर के लिए आदर्श तापमान की जानकारी प्रदान करेगा।
एक बार जब आपके पास प्रत्येक तापमान की जानकारी हो जाए, तब बैंगनी कालीन के ऊपर स्थित गहरे X चिन्ह की ओर जाएँ, यहाँ हम try/except और else कोड अनुक्रम का उपयोग करेंगे ताकि यह सत्यापित किया जा सके कि जल हीटर सही तापमान पर हैं। यहां चार (4) और परिवर्तनीय स्थिरांक हैं जो संबंधित रंगीन कालीनों से संबंधित हैं: purple_temperature, yellow_temperature, pink_temperature और white_temperature।
इस अनुक्रम में हम सत्यापित करेंगे कि तापमान 100 से कम है या नहीं, यदि कम है तो हम TemperatureError अपवाद को उठाएंगे। एक कस्टम अपवाद के रूप में, यह एक तर्क लेता है, इस मामले में आपको त्रुटि को ठीक करने के लिए मेमो में पढ़ा गया तापमान दर्ज करना होगा। उदाहरण के लिए:
try: if purple_temperature < 100: raise TemperatureError(120) except TemperatureError as x: player.speak(x) else: player.speak( "Temperature is ok" )
इसे सभी जल हीटरों के लिए करें, प्रत्येक X चिन्ह पर जहाँ हीटर का सामना करते हैं, सही रंगीन कालीन से संबंधित परिवर्तनीय स्थिरांक का उपयोग करते हुए अनुक्रम निष्पादित करें ताकि स्तर पूर्ण हो सके।