Bird
Raised Fist0
Pythonprogramming~15 mins

Raising exceptions in Python - Mini Project: Build & Apply

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
Raising Exceptions in Python
📖 Scenario: You are building a simple program that checks user input for age eligibility to enter a club. If the age is below the allowed limit, the program should raise an exception to stop the process and inform the user.
🎯 Goal: Create a program that raises an exception when the user's age is below 18, using Python's raise statement.
📋 What You'll Learn
Create a variable called age with a specific integer value.
Create a variable called minimum_age set to 18.
Use an if statement to check if age is less than minimum_age.
Raise a ValueError with the message 'Age is below the minimum allowed.' when the condition is true.
Print 'Access granted.' if the age is valid.
💡 Why This Matters
🌍 Real World
Programs often need to check if input values are valid and stop running if they are not. Raising exceptions helps catch errors early.
💼 Career
Understanding how to raise exceptions is important for writing safe and reliable code in software development jobs.
Progress0 / 4 steps
1
Create the age variable
Create a variable called age and set it to the integer 16.
Python
Hint

Use age = 16 to store the user's age.

2
Set the minimum age
Create a variable called minimum_age and set it to the integer 18.
Python
Hint

Use minimum_age = 18 to set the allowed age limit.

3
Raise an exception if age is too low
Write an if statement that checks if age is less than minimum_age. Inside the if, use raise ValueError('Age is below the minimum allowed.') to stop the program with an error.
Python
Hint

Use if age < minimum_age: and then raise ValueError('Age is below the minimum allowed.').

4
Print access granted if age is valid
After the if statement, write print('Access granted.') to show a success message when no exception is raised.
Python
Hint

Use print('Access granted.') after the if block.

Note: Because age is 16, the program will raise an error and not print 'Access granted.'

Practice

(1/5)
1. What does the raise statement do in Python?
easy
A. It creates a new variable.
B. It prints a message to the screen.
C. It stops the program and signals an error.
D. It repeats a block of code.

Solution

  1. Step 1: Understand the purpose of raise

    The raise statement is used to stop the program when an error or unexpected situation occurs.
  2. Step 2: Compare options with raise behavior

    Only It stops the program and signals an error. correctly describes that raise stops the program and signals an error.
  3. Final Answer:

    It stops the program and signals an error. -> Option C
  4. Quick Check:

    raise = stop program on error [OK]
Hint: Remember: raise means stop and show error [OK]
Common Mistakes:
  • Thinking raise prints messages
  • Confusing raise with variable creation
  • Assuming raise repeats code
2. Which of the following is the correct syntax to raise a ValueError with a message "Invalid input"?
easy
A. raise ValueError("Invalid input")
B. throw ValueError("Invalid input")
C. raise new ValueError("Invalid input")
D. error ValueError("Invalid input")

Solution

  1. Step 1: Recall Python syntax for raising exceptions

    In Python, the correct way to raise an exception is using raise ExceptionType("message").
  2. Step 2: Check each option

    raise ValueError("Invalid input") uses correct syntax. Options B, C, and D use invalid keywords or extra words not used in Python.
  3. Final Answer:

    raise ValueError("Invalid input") -> Option A
  4. Quick Check:

    raise + ExceptionType + message = correct syntax [OK]
Hint: Use 'raise ExceptionType("message")' exactly [OK]
Common Mistakes:
  • Using 'throw' instead of 'raise'
  • Adding 'new' keyword like other languages
  • Using 'error' keyword which doesn't exist
3. What will be the output of this code?
def check_age(age):
    if age < 18:
        raise ValueError("Too young")
    return "Access granted"

try:
    print(check_age(16))
except ValueError as e:
    print(e)
medium
A. Too young
B. Access granted
C. ValueError exception not caught
D. No output

Solution

  1. Step 1: Analyze function behavior with age 16

    Since 16 < 18, the function raises a ValueError with message "Too young".
  2. Step 2: Check exception handling in try-except

    The exception is caught by the except block, which prints the error message "Too young".
  3. Final Answer:

    Too young -> Option A
  4. Quick Check:

    Exception message printed = Too young [OK]
Hint: Exception message prints if caught in except [OK]
Common Mistakes:
  • Assuming function returns 'Access granted'
  • Thinking exception crashes program
  • Missing that except prints the error message
4. Find the error in this code snippet:
def divide(a, b):
    if b == 0:
        raise "Cannot divide by zero"
    return a / b

print(divide(10, 0))
medium
A. No error, code runs fine
B. raise must be followed by an exception instance, not a string
C. Division by zero is allowed in Python
D. Function divide should return None when b is zero

Solution

  1. Step 1: Identify the raise statement usage

    The code uses raise "Cannot divide by zero", which raises a string, not an exception object.
  2. Step 2: Understand correct raise syntax

    Python requires raising an exception instance, e.g., raise ValueError("Cannot divide by zero").
  3. Final Answer:

    raise must be followed by an exception instance, not a string -> Option B
  4. Quick Check:

    raise needs exception object, not string [OK]
Hint: Always raise an exception object, not a string [OK]
Common Mistakes:
  • Raising strings instead of exceptions
  • Ignoring that division by zero causes error
  • Assuming code runs without error
5. You want to create a function check_score(score) that raises a ValueError if the score is not between 0 and 100 (inclusive). Which code correctly implements this?
hard
A. def check_score(score): if score <= 0 or score >= 100: raise ValueError("Score must be 0-100") return True
B. def check_score(score): if 0 < score < 100: raise ValueError("Score must be 0-100") return True
C. def check_score(score): if score == 0 or score == 100: raise ValueError("Score must be 0-100") return True
D. def check_score(score): if score < 0 or score > 100: raise ValueError("Score must be 0-100") return True

Solution

  1. Step 1: Understand the valid score range

    Score must be between 0 and 100, including 0 and 100.
  2. Step 2: Check each condition for raising ValueError

    def check_score(score): if score < 0 or score > 100: raise ValueError("Score must be 0-100") return True raises error if score is less than 0 or greater than 100, correctly allowing 0 and 100.
  3. Step 3: Verify other options

    def check_score(score): if 0 < score < 100: raise ValueError("Score must be 0-100") return True raises error incorrectly for valid scores between 0 and 100. def check_score(score): if score <= 0 or score >= 100: raise ValueError("Score must be 0-100") return True excludes 0 and 100 incorrectly. def check_score(score): if score == 0 or score == 100: raise ValueError("Score must be 0-100") return True raises error only if score equals 0 or 100, which is wrong.
  4. Final Answer:

    def check_score(score): if score < 0 or score > 100: raise ValueError("Score must be 0-100") return True -> Option D
  5. Quick Check:

    Raise error outside 0-100 inclusive = def check_score(score): if score < 0 or score > 100: raise ValueError("Score must be 0-100") return True [OK]
Hint: Use 'if score < 0 or score > 100' to check range [OK]
Common Mistakes:
  • Using wrong comparison operators
  • Excluding valid boundary values
  • Raising error inside valid range