Skip to content

Errors and Exceptions in Python

What are errors and exceptions?

When Python can’t execute your code, it stops and reports a problem.

  • Syntax errors happen when Python can’t even parse the code.
  • Exceptions happen while the program is running (runtime problems).

Syntax Error

A syntax error occurs when Python sees invalid code structure.

syntax_error.py
# Missing colon
if 10 > 5
    print("10 is greater")
syntax_error.py
# Missing colon
if 10 > 5
    print("10 is greater")

Typical output:

Traceback
  File "syntax_error.py", line 2
    if 10 > 5
             ^
SyntaxError: expected ':'
Traceback
  File "syntax_error.py", line 2
    if 10 > 5
             ^
SyntaxError: expected ':'

Exception (runtime error)

Example: division by zero.

zero_division.py
print(10 / 0)
zero_division.py
print(10 / 0)
Traceback
Traceback (most recent call last):
  File "zero_division.py", line 1, in <module>
    print(10 / 0)
ZeroDivisionError: division by zero
Traceback
Traceback (most recent call last):
  File "zero_division.py", line 1, in <module>
    print(10 / 0)
ZeroDivisionError: division by zero

How to read a traceback

A traceback tells you:

  1. Where the error occurred (file and line number)
  2. The call stack (which functions were called)
  3. The exception type and message

Common exception types

  • NameErrorNameError – variable not defined
  • TypeErrorTypeError – wrong type used (e.g., add str + int)
  • ValueErrorValueError – correct type, invalid value (e.g., int(β€œabc”))
  • IndexErrorIndexError – list index out of range
  • KeyErrorKeyError – dict key missing
  • FileNotFoundErrorFileNotFoundError – file path not found
common_exceptions.py
# NameError
# print(x)
 
# TypeError
# print("age: " + 10)
 
# ValueError
# print(int("abc"))
 
# IndexError
# nums = [1, 2]
# print(nums[10])
 
# KeyError
# d = {"a": 1}
# print(d["missing"])
 
# FileNotFoundError
# open("missing.txt", "r")
common_exceptions.py
# NameError
# print(x)
 
# TypeError
# print("age: " + 10)
 
# ValueError
# print(int("abc"))
 
# IndexError
# nums = [1, 2]
# print(nums[10])
 
# KeyError
# d = {"a": 1}
# print(d["missing"])
 
# FileNotFoundError
# open("missing.txt", "r")

Next

In the next pages you’ll learn:

  • Handling exceptions with try/excepttry/except
  • Cleaning up resources with finallyfinally and context managers
  • Creating custom exceptions

πŸ§ͺ Try It Yourself

Exercise 1 – Catch a ValueError

Exercise 2 – Multiple Except Blocks

Exercise 3 – Raise a Custom Exception

If this helped you, consider buying me a coffee β˜•

Buy me a coffee

Was this page helpful?

Let us know how we did