Exceptions को कैच करना
अपनी कस्टम exceptions लिखने से पहले, आइए सुनिश्चित करें कि आप exception handling की बुनियाद अच्छी तरह समझते हैं।
इस अभ्यास में आपको एक फंक्शन invert_at_index(x, ind) दिया गया है जो दो आर्ग्युमेंट लेता है: एक लिस्ट x और एक इंडेक्स ind, और उस इंडेक्स पर मौजूद एलिमेंट का उलटा (inverse) निकालता है। उदाहरण के लिए, invert_at_index([5,6,7], 0) 1/5 या 0.2 लौटाता है।
आपका लक्ष्य है कि जो error घटित हो, उसके प्रकार के आधार पर कस्टम exceptions उठाने के लिए उपयुक्त error-handling लागू करें।
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Object-Oriented Programming परिचय
अभ्यास निर्देश
फंक्शन के अंदर दो except ब्लॉक्स के साथ try - except - except पैटर्न का उपयोग करके नीचे दिए गए दो exceptions को कैच और हैंडल करें:
tryमें कोड यथावत चलाएँ और1/x[ind]लौटाएँ।- अगर
ZeroDivisionErrorहो, तो"Cannot divide by zero!"प्रिंट करें, - अगर
IndexErrorहो, तो"Index out of range!"प्रिंट करें।
आप जान जाएँगे कि समाधान सही है अगर कोड बिना errors के चलता है, और कंसोल में आउटपुट यह आता है:
0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Modify the function to catch exceptions
def invert_at_index(x, ind):
____:
return 1/x[ind]
_____:
print("____")
____:
print("____")
a_list = [5,6,0,7]
# Works okay
print(invert_at_index(a_list, 1))
# Potential ZeroDivisionError
print(invert_at_index(a_list, 2))
# Potential IndexError
print(invert_at_index(a_list, 5))