SkillByAIOpen interactive version →

Lesson 30 / 49

try / except / else / finally

Handle errors gracefully with try, except, else and finally, and catch specific exception types.

The full structure

Risky code goes in try. Matching except blocks handle specific error types. else runs only if no error occurred; finally always runs.

try:
    result = 10 / int(input("Divide by: "))
except ValueError:
    print("That's not a number")
except ZeroDivisionError:
    print("Can't divide by zero")
else:
    print("Result:", result)
finally:
    print("Done")

Common exception types

Common built-in exceptions: ValueError, TypeError, KeyError, IndexError, FileNotFoundError, ZeroDivisionError. Catch the specific one you expect, not a bare except:.