शुरू करेंमुफ़्त में शुरू करें

Exceptions पकड़ना

अपने खुद के custom exceptions लिखने से पहले, आइए सुनिश्चित करें कि आप exceptions हैंडल करने की बुनियाद समझते हैं.

इस अभ्यास में, आपको एक फंक्शन invert_at_index(x, ind) दिया गया है जो दो आर्ग्यूमेंट लेता है: एक लिस्ट x और एक इंडेक्स ind, और दिए गए इंडेक्स पर लिस्ट के एलिमेंट को invert करता है. उदाहरण के लिए, invert_at_index([5,6,7], 1) 1/6 या 0.166666 रिटर्न करता है.

कोड को जैसा है वैसा चलाकर देखें और कंसोल में आउटपुट जाँचें. इस फंक्शन में दो असुरक्षित ऑपरेशन हैं: पहला, अगर जिसे हम invert करना चाहते हैं उसका मान 0 है, तो कोड ZeroDivisionError exception उठाएगा. दूसरा, अगर फंक्शन को दिया गया इंडेक्स लिस्ट की सीमा से बाहर है, तो कोड IndexError पैदा करेगा. दोनों ही स्थितियों में स्क्रिप्ट बीच में रुक जाएगी, जो हमेशा वांछनीय नहीं है.

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग

पाठ्यक्रम देखें

अभ्यास निर्देश

फंक्शन के अंदर दो except ब्लॉक्स के साथ try - except - except पैटर्न का इस्तेमाल करें ताकि दो exceptions को इस प्रकार catch और handle किया जा सके:

  • कोड को जैसा है वैसा चलाने की कोशिश करें (try),
  • अगर 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]
 
a = [5,6,0,7]

# Works okay
print(invert_at_index(a, 1))

# Potential ZeroDivisionError
print(invert_at_index(a, 2))

# Potential IndexError
print(invert_at_index(a, 5))
कोड संपादित करें और चलाएँ