Remember
A try block holds the operation that may fail. except handles matching errors; finally runs whether or not an error occurred.
A try block holds the operation that may fail. except handles matching errors; finally runs whether or not an error occurred.
Follow the example, change its sample, and compare what happens.
Explain the result and test your understanding.
Focus on how the names, objects, and calculations change. We’ll inspect the printed output in the next section.
Follow the code and watch its state change. Guided simulation.
number = 3
try:
print(12 / number)
except ZeroDivisionError:
print("Cannot divide by zero")
finally:
print("finished")Top-level scope
3A try block holds the operation that may fail. except handles matching errors; finally runs whether or not an error occurred.
(no output)
What do you expect this program to print?
TRY THE OPERATION
/ \
succeeds raises matching exception
| |
continue except handler
\ /
finally blockChoose a different sample input, then follow every step through to the output. Before revealing it, predict what the program will display.
Choose a sample and follow its execution. Guided simulation.
number = 3
try:
print(12 / number)
except ZeroDivisionError:
print("Cannot divide by zero")
finally:
print("finished")Top-level scope
3The example has finished. Compare the final output with the values and references above.
4.0 finished
What do you expect this program to print?
number = 3
try:
print(12 / number)
except ZeroDivisionError:
print("Cannot divide by zero")
finally:
print("finished")Sometimes, when your program runs, things can go wrong — like dividing a number by zero, or trying to open a file that doesn’t exist. These problems are called exceptions in Python.
An exception is a message that Python shows when something goes wrong while running your code. It stops the program unless you tell Python how to handle it.
Exceptions are helpful! They don’t crash your computer — they just let you know something unusual happened. If you don’t handle them, your program will stop. But if you do, your program can keep going or show a friendly message instead.
print(10 / 0)
ZeroDivisionError: division by zero
Why this happened: You’re trying to divide 10 by 0, which is not allowed in math. So Python shows a ZeroDivisionError.
Python gives us a way to handle such situations using try and except blocks.
try:
print(10 / 0)
except ZeroDivisionError:
print("Oops! You can't divide by zero.")
Oops! You can't divide by zero.
Why this works: The code inside try might cause an error. If it does, the code inside except runs instead of crashing the program.
try:
number = int("hello")
print(number)
except ValueError:
print("That’s not a number!")
That’s not a number!
Why: You’re trying to turn the word "hello" into a number. That’s not possible, so Python gives a ValueError.
try:
print(10 / 0)
except:
print("Some error happened!")
Note: You can use except alone, but it's better to catch specific errors like ZeroDivisionError or ValueError if you know what to expect.
Exceptions are normal in programming. They help you find and fix problems. Using try and except, you can write programs that don’t crash — even when something goes wrong.
Connect what you noticed in the example with the idea below.
A try block holds the operation that may fail. except handles matching errors; finally runs whether or not an error occurred.
finally runs only after an exception.
This is the misconception to avoid.Reaching the recap and completing the quizzes are separate milestones.