Python Basics · Error Handling · Lesson 22 of 36
else and finally
Concept
else and finally
An else block runs only if no exception was raised. finally always runs at the end, whether there was an error or not — useful for cleanup.
A common finally use case is closing a file or network connection, guaranteeing it happens even if the code above it fails.
By the end of this lesson
- Explain the core idea behind else and finally.
- Predict output before running a change.
- Test one realistic and one unusual input.
- Use the result to make the next decision.
How to study this page
- 1. Read one concept.
- 2. Change the example.
- 3. Run, compare, and explain.
- 4. Complete the challenge below.
Syntax
try:
# code
except ExceptionType:
# handle error
else:
# runs if no error
finally:
# always runsExampleRunnable
try:
result = 10 / 2
except ZeroDivisionError:
print("Cannot divide by zero")
else:
print("Success:", result)
finally:
print("Done attempting the division.")Try it Yourself »Self-check before continuing
Without looking at the example, describe what changes when you modify one input in else and finally. Then reopen the editor and prove your explanation with a small test.
You are ready to continue when you can predict, test, and explain the result.
Your turn
Add an else clause to a try/except that prints a success message only when no exception occurred.
Loading editor…
Console