Bird
Raised Fist0
Pythonprogramming~10 mins

Try–except execution flow in Python - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - Try–except execution flow
Start try block
Execute code in try
Error?
NoContinue after try-except
Yes
Go to except block
Handle error
Continue after try-except
The program tries to run code inside the try block. If an error happens, it jumps to the except block to handle it, then continues.
Execution Sample
Python
try:
    x = 5 / y
except ZeroDivisionError:
    x = 0
print(x)
This code tries to divide 5 by y. If y is zero, it catches the error and sets x to 0, then prints x.
Execution Table
StepActionEvaluationResult
1Enter try blockExecute 'x = 5 / y'Error: NameError (y not defined)
2Error caught?No, NameError not caught by except ZeroDivisionErrorProgram crashes (no except for NameError)
3If y=0 and defined, execute 'x = 5 / 0'ZeroDivisionError raisedJump to except block
4In except ZeroDivisionError blockSet x = 0x is now 0
5After try-exceptPrint xOutput: 0
💡 Execution stops if error is not caught; otherwise continues after except block.
Variable Tracker
VariableStartAfter Step 1After Step 4Final
xundefinederror (not set)00
yundefinedundefinedundefinedundefined or 0 if defined
Key Moments - 3 Insights
Why does the program crash when y is not defined?
Because the except block only catches ZeroDivisionError, but the error is NameError, so it is not caught (see execution_table step 2).
What happens if y is zero?
A ZeroDivisionError occurs, which is caught by the except block, so x is set to 0 and the program continues (see execution_table steps 3 and 4).
Does the except block run if no error happens?
No, the except block only runs if an error occurs in the try block (see execution_table step 1 no error path).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what error occurs at step 1 if y is not defined?
ANameError
BZeroDivisionError
CSyntaxError
DNo error
💡 Hint
Check the 'Evaluation' column in step 1 of the execution_table.
At which step does the except block set x to 0?
AStep 2
BStep 4
CStep 3
DStep 5
💡 Hint
Look at the 'Action' and 'Result' columns in step 4 of the execution_table.
If y is 2, what will be printed after the try-except?
A0
B2
C2.5
DAn error occurs
💡 Hint
If no error occurs, the try block runs fully; check what 'x' is assigned in the code sample.
Concept Snapshot
try:
  # code that might cause error
except ErrorType:
  # code to handle error

- Runs try block first
- If error matches except, runs except block
- Otherwise error stops program
- Continues after try-except if handled
Full Transcript
This visual shows how Python runs code inside a try block. If an error happens, it checks if the except block matches the error type. If yes, it runs the except block to handle it and continues. If no, the program stops with an error. For example, dividing by zero raises ZeroDivisionError, which can be caught. But if a variable is not defined, NameError occurs and is not caught by except ZeroDivisionError, so the program crashes. The variable x changes only if the except block runs. This helps keep programs running even when errors happen.

Practice

(1/5)
1. What is the main purpose of using a try-except block in Python?
easy
A. To speed up the program execution
B. To handle errors and prevent the program from crashing
C. To repeat a block of code multiple times
D. To define a new function

Solution

  1. Step 1: Understand the role of try block

    The try block contains code that might cause an error during execution.
  2. Step 2: Understand the role of except block

    The except block catches and handles the error so the program does not stop abruptly.
  3. Final Answer:

    To handle errors and prevent the program from crashing -> Option B
  4. Quick Check:

    Try-except handles errors = B [OK]
Hint: Try-except blocks catch errors to keep programs running [OK]
Common Mistakes:
  • Thinking try-except speeds up code
  • Confusing try-except with loops
  • Using try-except to define functions
2. Which of the following is the correct syntax to catch a ZeroDivisionError in Python?
easy
A. try: x = 1/0 except ZeroDivisionError: print('Cannot divide by zero')
B. try: x = 1/0 catch ZeroDivisionError: print('Cannot divide by zero')
C. try: x = 1/0 except: print('Error') finally ZeroDivisionError:
D. try: x = 1/0 except ZeroDivisionError then: print('Cannot divide by zero')

Solution

  1. Step 1: Identify correct try-except syntax

    Python uses try: followed by except ExceptionType: to catch errors.
  2. Step 2: Check each option for syntax errors

    try: x = 1/0 except ZeroDivisionError: print('Cannot divide by zero') uses correct except ZeroDivisionError: syntax; others use invalid keywords like catch or incorrect formatting.
  3. Final Answer:

    try: x = 1/0 except ZeroDivisionError: print('Cannot divide by zero') -> Option A
  4. Quick Check:

    Correct except syntax = A [OK]
Hint: Use 'except ExceptionType:' to catch specific errors [OK]
Common Mistakes:
  • Using 'catch' instead of 'except'
  • Adding 'then' after except
  • Misplacing 'finally' keyword
3. What will be the output of the following code?
try:
    print('Start')
    x = 5 / 0
    print('End')
except ZeroDivisionError:
    print('Error caught')
print('Done')
medium
A. Start End Error caught Done
B. Error caught Done
C. Start Done
D. Start Error caught Done

Solution

  1. Step 1: Trace code inside try block

    It prints 'Start', then tries to divide 5 by 0, which raises ZeroDivisionError before printing 'End'.
  2. Step 2: Handle exception and continue

    The except block catches the error and prints 'Error caught'. After that, the program continues and prints 'Done'.
  3. Final Answer:

    Start Error caught Done -> Option D
  4. Quick Check:

    Exception stops try block, except runs = C [OK]
Hint: Error stops try; except runs; code after try-except runs [OK]
Common Mistakes:
  • Assuming 'End' prints after error
  • Missing that except block runs
  • Thinking program stops after error
4. Identify the error in this code snippet:
try:
    print('Hello')
except ValueError
    print('Value error occurred')
medium
A. try block cannot have print statements
B. Missing parentheses after except
C. Missing colon ':' after except ValueError
D. except block must come before try block

Solution

  1. Step 1: Check syntax of except statement

    The except line must end with a colon ':' to define the block.
  2. Step 2: Identify missing colon

    In the code, except ValueError is missing the colon, causing a syntax error.
  3. Final Answer:

    Missing colon ':' after except ValueError -> Option C
  4. Quick Check:

    except line needs ':' = A [OK]
Hint: Always put ':' after except ExceptionType [OK]
Common Mistakes:
  • Forgetting colon after except
  • Adding parentheses after except
  • Misordering try and except blocks
5. You want to safely convert user input to an integer, using try-except-else and catching ValueError specifically, printing 'Invalid input' for invalid input and 'Input is', num for valid input, without stopping the program. Which code does this?
hard
A. try: num = int(input('Enter number: ')) except ValueError: print('Invalid input') else: print('Input is', num)
B. try: num = int(input('Enter number: ')) except: print('Invalid input') else: print('Input is', num)
C. try: num = int(input('Enter number: ')) except ValueError: print('Invalid input') finally: print('Done')
D. try: num = int(input('Enter number: ')) except ValueError: print('Invalid input')

Solution

  1. Step 1: Understand try-except-else structure

    The try block attempts conversion; except handles errors; else runs if no error occurs.
  2. Step 2: Check which option prints 'Invalid input' on error and shows input if valid

    try: num = int(input('Enter number: ')) except ValueError: print('Invalid input') else: print('Input is', num) correctly prints 'Invalid input' on ValueError and prints the number if conversion succeeds.
  3. Final Answer:

    try: num = int(input('Enter number: ')) except ValueError: print('Invalid input') else: print('Input is', num) -> Option A
  4. Quick Check:

    Use except for errors, else for success = D [OK]
Hint: Use except for errors and else for success actions [OK]
Common Mistakes:
  • Not using else to handle successful input
  • Catching all exceptions without specifying
  • Missing error handling causing crash