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
Step 1: Understand the purpose of raise
The raise statement is used to stop the program when an error or unexpected situation occurs.
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.
Final Answer:
It stops the program and signals an error. -> Option C
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
Step 1: Recall Python syntax for raising exceptions
In Python, the correct way to raise an exception is using raise ExceptionType("message").
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.
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
Step 1: Analyze function behavior with age 16
Since 16 < 18, the function raises a ValueError with message "Too young".
Step 2: Check exception handling in try-except
The exception is caught by the except block, which prints the error message "Too young".
Final Answer:
Too young -> Option A
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
Step 1: Identify the raise statement usage
The code uses raise "Cannot divide by zero", which raises a string, not an exception object.
Step 2: Understand correct raise syntax
Python requires raising an exception instance, e.g., raise ValueError("Cannot divide by zero").
Final Answer:
raise must be followed by an exception instance, not a string -> Option B
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
Step 1: Understand the valid score range
Score must be between 0 and 100, including 0 and 100.
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.
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.
Final Answer:
def check_score(score):
if score < 0 or score > 100:
raise ValueError("Score must be 0-100")
return True -> Option D
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]