1.3.5 · HinglishPython Intermediate

Exception handling — try, except (specific), else, finally

1,491 words7 min readRead in English

1.3.5 · Coding › Python Intermediate


YEH exist KYUN karta hai?

Ek exception ek object hai jise Python raise (throw) karta hai jab kuch abnormal hota hai. Agar koi ise catch nahi karta, toh yeh call stack upar propagate hoti hai jab tak program ek traceback ke saath crash nahi kar leta.


WHAT hain yeh chaar blocks?

try:
    risky()          # WHAT: dangerous hissa
except ValueError:   # WHAT: SPECIFIC error handle karo
    handle()
else:                # WHAT: sirf tab run hota hai jab try succeed kare
    on_success()
finally:             # WHAT: cleanup, hamesha
    cleanup()
Figure — Exception handling — try, except (specific), else, finally

HOW control flow actually move karta hai?


Specific vs bare except


Worked examples


Flashcards

Try statement ka else block kab run hota hai?
Sirf tab jab try block koi exception raise kiye bina complete hua ho.
finally kab run hota hai?
Hamesha — chahe exception aayi ho ya nahi, catch hui ho ya nahi, ya chahe return/break/continue use kiya ho.
Bare except: ke jagah except ValueError prefer kyun karein?
Bare except bugs (NameError), Ctrl-C (KeyboardInterrupt) aur SystemExit bhi swallow kar leta hai, real problems chhupa deta hai. Jo narrowest exception handle kar sako wahi catch karo.
Agar try body mein statement pe exception raise ho, toh ka kya hota hai?
Woh skip ho jaata hai; Python seedha matching except clause pe jump karta hai.
Kya except ParentError ChildError (subclass) ko catch karega?
Haan — except listed class aur uski saari subclasses match karta hai. Isliye child-pehle, parent-baad mein rakho.
Sirf risky line try mein aur baaki else mein KYUN rakhein?
Taaki success-handling code mein error accidentally aapke except se catch na ho, jo ek alag bug mask kar deta.
Exception object tak kaise access karein?
except SomeError as e: se ise e se bind karo.
except (A, B): ka matlab kya hai?
Exception A ya B (types ka tuple) ko same handler se catch karo.

Recall Feynman: 12-saal ke bachhe ko explain karo

Socho tum ek recipe se khana bana rahe ho (try). Agar koi step galat ho jaye — anda gira diya — tum aankhein band karke recipe follow nahi karte. Tum "anda toot jaye toh kya karein" wale note pe jump karte ho (except). Agar khana perfectly bana, toh "ab khana plate karo" step karte ho (else). Aur chahe kuch bhi ho — jala ho ya perfect — tum hamesha end mein bartan zaroor dhoote ho (finally). except egg-broke specific hai: woh fire nahi karta agar oven mein aag lag gayi, woh alag emergency hai.


Connections

  • Raising exceptions — raise and custom exception classes
  • The exception class hierarchy — BaseException, Exception, LookupError
  • Context managers — with statement and __enter__/__exit__ (aksar try/finally ki jagah leta hai)
  • File handling in Python
  • Debugging and tracebacks
  • Logging vs printing errors

Concept Map

raised inside

abandons rest, jumps to

matches via isinstance

no exception then run

no clause matches

nobody catches

always after

always after

always after

motivates

Exception object

try block

except SpecificError

else block

finally block

Propagate up stack

Traceback crash

Keep try region small