Home › Hindi › Exception handling Hindi

Python exception handling Hindi में — try, except, else, finally

🌐 यह page Hindi में है · Read this in English →

try / except / else / finallyसही क्रम का ruleFree browser practice

Exception handling की ज़रूरत क्यों

कुछ galtiyan आपके code की नहीं होतीं — user गलत input दे देता है, file गायब होती है, internet टूट जाता है। इन्हें पहले से रोका नहीं जा सकता, सिर्फ सँभाला जा सकता है। यही exception handling है।

# बिना handling — पूरा program मर जाता है
num = int(input("Number: "))   # user ने लिखा "abc"
print("Yahan tak pahunchega hi nahi")
# handling के साथ — program ज़िंदा रहता है
try:
    num = int(input("Number: "))
    print("Aapka number:", num)
except ValueError:
    print("Sirf number likho")

print("Program chalta raha")   # ✅ यह हमेशा छपेगा

try, except, else, finally — चारों का काम

try:
    # वह code जो टूट सकता है
    marks = int(input("Marks: "))
    percent = marks / 100
except ValueError:
    # सिर्फ तब चलेगा जब ValueError आए
    print("Galat input")
else:
    # सिर्फ तब चलेगा जब try में कोई error आया ही नहीं
    print("Percent:", percent)
finally:
    # हर हाल में चलेगा — error आए या न आए
    print("Jaanch poori hui")

दो नियम जो लोग भूल जाते हैं:

except का क्रम — छोटे पहले, बड़े बाद में

# ❌ गलत क्रम — ValueError वाला block कभी नहीं चलेगा
try:
    num = int(input())
except Exception:
    print("Kuch galat hua")
except ValueError:        # यहाँ तक control पहुँचता ही नहीं
    print("Number likho")
# ✅ सही क्रम — specific पहले, general बाद में
try:
    num = int(input())
    result = 100 / num
except ValueError:
    print("Number likho")
except ZeroDivisionError:
    print("Zero se bhag nahi sakte")
except Exception as e:
    print("Anjaan galti:", e)

Python ऊपर से नीचे पहला मेल खाता except चुनता है। Exception सबका बाप है, इसलिए वह सबसे नीचे जाना चाहिए। एक ही काम दो errors पर करना हो तो tuple लिखो: except (ValueError, TypeError):

except: अकेला मत लिखो

# ❌ सबसे खतरनाक line
try:
    kaam()
except:
    pass

यह हर error चुपचाप निगल जाता है — typo, memory error, यहाँ तक कि Ctrl+C भी। आपका bug छिप जाता है और घंटों पता नहीं चलता।

# ✅ कम से कम इतना करो
try:
    kaam()
except Exception as e:
    print("Error:", type(e).__name__, "-", e)

type(e).__name__ error का नाम देता है (ValueError) और e उसका message। Debugging में यही दो चीज़ें सबसे ज़्यादा काम आती हैं।

raise — खुद error उठाना

जब input तकनीकी रूप से ठीक है पर आपके rules के हिसाब से गलत है, तब raise करो:

def set_umar(umar):
    if umar < 0:
        raise ValueError("Umar negative nahi ho sakti")
    return umar

try:
    set_umar(-5)
except ValueError as e:
    print("Pakda gaya:", e)    # Pakda gaya: Umar negative nahi ho sakti

अपना खुद का exception बनाना हो तो Exception से class बना लो:

class MarksError(Exception):
    pass

def check(m):
    if m > 100:
        raise MarksError(f"{m} marks possible nahi hain")

try:
    check(120)
except MarksError as e:
    print(e)

4 galtiyan जो सबसे ज़्यादा होती हैं

याद रखने लायक एक बात: अच्छा exception handling का मतलब "error छिपाना" नहीं, "error का साफ जवाब देना" है।

🛠️ Practice करो (free, browser में)

पढ़ना काफी नहीं — यही bug खुद fix करके देखो। नीचे के problems browser में ही चलते हैं, कोई install नहीं, कोई login नहीं।

सारे free problems देखो →

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

try-except में else का क्या काम है?

else वाला block तब चलता है जब try में कोई भी exception नहीं आया। इससे "जो टूट सकता है" और "सब ठीक रहने पर जो करना है" — दोनों अलग-अलग साफ दिखते हैं।

finally block कब चलता है?

हर हाल में — error आए या न आए, और try के अंदर return लिखा हो तब भी। इसीलिए file बंद करने या connection छोड़ने जैसा cleanup का काम finally में रखा जाता है।

except: अकेला लिखना गलत क्यों है?

क्योंकि वह हर तरह की error चुपचाप पकड़ लेता है, जिसमें आपके अपने typo और Ctrl+C भी शामिल हैं। कम से कम except Exception as e: लिखो ताकि पता चले कि असल में हुआ क्या।

exception handling और if condition में से क्या चुनें?

जो हालात आप पहले से जाँच सकते हो (जैसे zero से भाग) उसके लिए if बेहतर है। Exception उन हालात के लिए है जो आपके बस में नहीं — गलत user input, गायब file, टूटा network।

आगे पढ़ो