Bird
Raised Fist0
Pythonprogramming~20 mins

Handling specific exceptions in Python - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Exception Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of specific exception handling
What is the output of this code when the input is 0?
Python
try:
    result = 10 / 0
except ZeroDivisionError:
    print("Cannot divide by zero")
except Exception:
    print("Some other error")
ANo output
BSome other error
C0
DCannot divide by zero
Attempts:
2 left
💡 Hint
Think about which exception is raised by dividing by zero.
Predict Output
intermediate
2:00remaining
Output when catching multiple exceptions
What will this code print?
Python
try:
    x = int('abc')
except (ValueError, TypeError):
    print("Caught ValueError or TypeError")
except Exception:
    print("Caught some other exception")
ACaught some other exception
BCaught ValueError or TypeError
Cabc
DNo output
Attempts:
2 left
💡 Hint
What exception does int('abc') raise?
Predict Output
advanced
2:00remaining
Exception handling with else and finally
What is the output of this code?
Python
try:
    print("Start")
    x = 5 / 1
except ZeroDivisionError:
    print("Divide by zero error")
else:
    print("No error occurred")
finally:
    print("Always runs")
A
Start
No error occurred
Always runs
B
Start
Divide by zero error
Always runs
C
No error occurred
Always runs
D
Start
Always runs
Attempts:
2 left
💡 Hint
Consider what happens when no exception is raised.
Predict Output
advanced
2:00remaining
What error is raised?
What error does this code raise?
Python
try:
    d = {'a': 1}
    print(d['b'])
except KeyError:
    print("Key not found")
except Exception:
    print("Other error")
ANone
BOther error
CKey not found
DKeyError exception not caught
Attempts:
2 left
💡 Hint
What happens when you access a missing key in a dictionary?
Predict Output
expert
2:00remaining
Output with nested try-except and re-raising
What is the output of this code?
Python
try:
    try:
        x = 1 / 0
    except ZeroDivisionError:
        print("Inner catch")
        raise
except ZeroDivisionError:
    print("Outer catch")
A
Inner catch
Outer catch
BInner catch
COuter catch
DNo output
Attempts:
2 left
💡 Hint
What happens when an exception is re-raised inside an except block?

Practice

(1/5)
1. What is the main purpose of using try-except blocks in Python?
easy
A. To catch and handle specific errors so the program doesn't crash
B. To speed up the program execution
C. To write comments inside the code
D. To create new functions automatically

Solution

  1. Step 1: Understand the role of try-except

    The try-except block is used to catch errors that happen during program execution.
  2. Step 2: Identify the benefit of catching errors

    By catching errors, the program can handle them gracefully and continue running instead of crashing.
  3. Final Answer:

    To catch and handle specific errors so the program doesn't crash -> Option A
  4. Quick Check:

    try-except = catch errors [OK]
Hint: Try-except blocks catch errors to avoid crashes [OK]
Common Mistakes:
  • Thinking try-except speeds up code
  • Confusing try-except with comments
  • Believing try-except creates functions
2. Which of the following is the correct syntax to catch a ZeroDivisionError in Python?
easy
A. try: x = 1/0 except: print('Error')
B. try: x = 1/0 catch ZeroDivisionError: print('Cannot divide by zero')
C. try: x = 1/0 except ZeroDivisionError: print('Cannot divide by zero')
D. try: x = 1/0 except ZeroDivision: print('Cannot divide by zero')

Solution

  1. Step 1: Check the correct keyword for catching exceptions

    Python uses except to catch exceptions, not catch.
  2. Step 2: Verify the exception name spelling

    The correct exception name is ZeroDivisionError, not ZeroDivision.
  3. Final Answer:

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

    Use except + exact exception name [OK]
Hint: Use except with exact exception name to catch errors [OK]
Common Mistakes:
  • Using 'catch' instead of 'except'
  • Misspelling exception names
  • Using generic except without specifying error
3. What will be the output of this code?
try:
    num = int('abc')
except ValueError:
    print('Value error caught')
except TypeError:
    print('Type error caught')
medium
A. Value error caught
B. Type error caught
C. No output
D. Program crashes with ValueError

Solution

  1. Step 1: Identify the error raised by int('abc')

    Trying to convert 'abc' to int raises a ValueError.
  2. Step 2: Match the error with except blocks

    The ValueError is caught by the first except block, so it prints 'Value error caught'.
  3. Final Answer:

    Value error caught -> Option A
  4. Quick Check:

    int('abc') = ValueError caught [OK]
Hint: Match error type to except block to find output [OK]
Common Mistakes:
  • Confusing ValueError with TypeError
  • Thinking program crashes without except
  • Assuming no output if error caught
4. Find the error in this code and choose the correct fix:
try:
    print(10 / 0)
except ZeroDivisionError, e:
    print('Error:', e)
medium
A. Use except ZeroDivisionError(e):
B. Change except line to: except ZeroDivisionError as e:
C. Change print to print('Error') only
D. Remove the except block completely

Solution

  1. Step 1: Identify the syntax error in except clause

    Python 3 requires 'as' to assign exception to a variable, not a comma.
  2. Step 2: Correct the except syntax

    Replace except ZeroDivisionError, e: with except ZeroDivisionError as e:.
  3. Final Answer:

    Change except line to: except ZeroDivisionError as e: -> Option B
  4. Quick Check:

    Use 'as' to assign exception variable [OK]
Hint: Use 'except Exception as e:' syntax in Python 3 [OK]
Common Mistakes:
  • Using comma instead of 'as' in except
  • Removing except block causing crash
  • Wrong parentheses in except clause
5. You want to handle both KeyError and IndexError in the same block. Which is the best way to write the except clause?
hard
A. except KeyError, IndexError: print('Error caught')
B. except KeyError or IndexError: print('Error caught')
C. except KeyError and IndexError: print('Error caught')
D. except (KeyError, IndexError): print('Error caught')

Solution

  1. Step 1: Understand how to catch multiple exceptions

    Python requires a tuple of exceptions inside parentheses to catch multiple exceptions in one block.
  2. Step 2: Identify correct tuple syntax

    The correct syntax is except (KeyError, IndexError): to catch both exceptions.
  3. Final Answer:

    except (KeyError, IndexError): print('Error caught') -> Option D
  4. Quick Check:

    Use tuple in except to catch multiple exceptions [OK]
Hint: Use except (Error1, Error2): to catch multiple exceptions [OK]
Common Mistakes:
  • Using 'or' or 'and' instead of tuple
  • Using comma without parentheses
  • Trying to catch exceptions separately without blocks