Python Academy · पाठ

try / except / else / finally

किसी भी परिस्थिति के लिए अपवाद-संभालने वाले ब्लॉक की संरचना बनाएँ।

पाठ 2, कुल 4 में से14 चरण

try / except / else / finally, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

परिचय

Python का try/except/else/finally आपको त्रुटि प्रबंधन और सफ़ाई पर पूरा नियंत्रण देता है।

मूल try/except

try: risky_code() except ExceptionType: handle() — Python except ब्लॉक को केवल तभी चलाता है जब वह अपवाद प्रकार उत्पन्न होता है।
try:
    x = int('abc')
except ValueError:
    print('not a number')

अपवाद ऑब्जेक्ट पकड़ना

except ValueError as e: अपवाद को e से जोड़ता है। संदेश पाने के लिए str(e) या e.args का उपयोग करें।
try:
    int('oops')
except ValueError as e:
    print(f'Error: {e}')

एकाधिक अपवाद पकड़ना

except (TypeError, ValueError) as e: दोनों में से किसी भी प्रकार को पकड़ता है।
for val in ['abc', None, 42]:
    try:
        print(int(val))
    except (TypeError, ValueError) as e:
        print(f'skipping {val!r}: {e}')

खाली except (इससे बचें)

except: (बिना प्रकार के) KeyboardInterrupt और SystemExit समेत EVERYTHING को पकड़ता है। यह लगभग हमेशा गलती होती है — हमेशा प्रकार निर्दिष्ट करें।
try:
    risky = 1/0
except ZeroDivisionError:
    print('division error')  # specific

एकाधिक except क्लॉज़

आप कई except ब्लॉक रख सकते हैं, जिनमें से हर एक अलग प्रकार को संभालता है। Python उन्हें क्रम से आज़माता है।
def process(val):
    try:
        return 10 / int(val)
    except ValueError:
        print('not a number')
    except ZeroDivisionError:
        print('division by zero')
process('abc')
process('0')

else क्लॉज़

try/except/else में else केवल तभी चलता है जब कोई अपवाद उत्पन्न न हुआ हो। इसका उपयोग उस कोड के लिए करें जिसे सफलता पर चलना चाहिए।
try:
    x = int('42')
except ValueError:
    print('bad input')
else:
    print('parsed:', x)

finally क्लॉज़

finally हमेशा चलता है — try की सफलता के बाद, except के बाद, यहाँ तक कि return या break के बाद भी। सफ़ाई के लिए यह बिल्कुल उपयुक्त है।
def read_file(path):
    f = None
    try:
        f = open(path)
        return f.read()
    except FileNotFoundError:
        return None
    finally:
        if f: f.close()
print(read_file('/nonexistent'))

return के साथ finally

यदि return और finally दोनों मौजूद हों, तो finally पहले चलता है, लेकिन finally का return मान प्रभावी होता है। सावधान रहें।
def demo():
    try:
        return 'try'
    finally:
        return 'finally'  # overrides!
print(demo())

नेस्ट किए गए try ब्लॉक

try ब्लॉक एक-दूसरे के अंदर रखे जा सकते हैं। यदि अंदरूनी except उसे नहीं पकड़ता, तो अंदरूनी अपवाद बाहर की ओर प्रसारित होता है।
try:
    try:
        x = 1/0
    except ValueError:
        print('inner')
except ZeroDivisionError:
    print('outer caught it')

अपवादों का लॉग बनाना

import logging; logging.exception('msg') पूरे ट्रेसबैक का लॉग बनाता है। उत्पादन कोड में यह बहुत उपयोगी है।
import logging
try:
    1/0
except ZeroDivisionError:
    logging.exception('Caught an error')

त्वरित जाँच

अपवाद उत्पन्न हुआ हो या नहीं, कौन-सा क्लॉज़ चलता है?

पुनरावलोकन

try/except त्रुटियों को पकड़ता है। else सफलता पर चलता है। finally हमेशा चलता है (सफ़ाई के लिए)। विशिष्ट प्रकार पकड़ें; खाली except से बचें। अपवाद तक पहुँचने के लिए as e का उपयोग करें।

आगे बढ़ते रहें

बहुत अच्छा काम किया! प्रगति जारी रखने के लिए अगले पाठ पर जाएँ।
शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
76
पाठ
320

अक्सर पूछे जाने वाले प्रश्न

क्या “try / except / else / finally” पाठ निःशुल्क है?

हाँ—“try / except / else / finally” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“try / except / else / finally” में मैं क्या सीखूँगा?

किसी भी परिस्थिति के लिए अपवाद-संभालने वाले ब्लॉक की संरचना बनाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“try / except / else / finally” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. अपवादों को समझना
  2. try / except / else / finally
  3. अपवाद उत्पन्न करना और दोबारा उत्पन्न करना
  4. कस्टम अपवाद क्लास
← Python Academy पर वापस जाएँ