An exception interrupts normal control flow and carries information about a failure. Catch an exception where you can make a meaningful decision, and name the narrow type you expect. Catching every exception can turn a programming mistake into a misleading fallback. A domain exception can describe a failed business rule without exposing how the rule was implemented. The else block runs when the try block succeeds; finally runs as control leaves either path. You'll parse request values, validate a booking rule, preserve error categories, and record cleanup. Every failure is local and reproducible. No task contacts an external system or requires a real payment, account, or patient record.