Exception handling & Types of Errors in Python Programming

Exception handling in Python is a process of responding to and managing errors that occur during a program’s execution, allowing the program to continue running without crashing. These errors, known as exceptions, disrupt the normal flow of the program and can be caught and dealt with using a try...except block.


How It Works

The core of exception handling involves a try block and one or more except blocks.

  • try block: You place the code that might cause an error inside this block. If an exception occurs, Python immediately stops executing the code in the try block and looks for a matching except block.
  • except block: This block contains the code that runs when a specific type of exception is caught. You can specify which exception you’re handling (e.g., ZeroDivisionError, ValueError).

Types of Errors in Python Programming

Python errors can be broadly categorized into three main types:

1. Syntax Errors

Occur when the Python parser encounters incorrect syntax.

python

# Examples of syntax errors
print("Hello world"  # Missing closing parenthesis
if x = 5:            # Using = instead of ==
def function:        # Missing parentheses for parameters

Characteristics:

  • Detected during parsing/compilation
  • Prevent the program from running
  • Easy to spot with proper code editors

2. Runtime Errors (Exceptions)

Occur during program execution when an operation is attempted that is impossible to execute.

Common Runtime Errors:

ZeroDivisionError

python

result = 10 / 0  # Division by zero

TypeError

python

"5" + 3           # Adding string and integer
len(5)            # len() on integer

ValueError

python

int("abc")        # Invalid conversion
float("12.34.56") # Invalid float format

IndexError

python

my_list = [1, 2, 3]
print(my_list[5]) # Index out of range

KeyError

python

my_dict = {"a": 1, "b": 2}
print(my_dict["c"]) # Key doesn't exist

FileNotFoundError

python

with open("nonexistent.txt", "r") as file:
    content = file.read()

AttributeError

python

x = 5
x.append(10)      # Integer has no append method

ImportError

python

import non_existent_module  # Module doesn't exist

NameError

python

print(undefined_variable)  # Variable not defined

KeyboardInterrupt

python

# Occurs when user presses Ctrl+C

3. Logical Errors

The program runs without crashing but produces incorrect results.

python

# Logical error example
def calculate_average(numbers):
    # Forgot to divide by length - logical error
    return sum(numbers)  # Should be: return sum(numbers) / len(numbers)

result = calculate_average([1, 2, 3, 4, 5])
print(result)  # Output: 15 (should be 3.0)

Characteristics:

  • Hardest to detect and debug
  • Program runs but gives wrong output
  • Requires careful testing and debugging

Less Common but Important Errors

MemoryError

python

# When program runs out of memory
huge_list = [0] * (10**10)  # May cause MemoryError

RecursionError

python

def infinite_recursion():
    return infinite_recursion()  # Maximum recursion depth exceeded

infinite_recursion()

OverflowError

python

import math
math.exp(1000)  # Result too large to represent

StopIteration

python

# Raised by next() when iterator has no more items
iterator = iter([1, 2])
next(iterator)  # 1
next(iterator)  # 2
next(iterator)  # StopIteration

Error Hierarchy

Python exceptions follow an inheritance hierarchy:

text

BaseException
 ├── SystemExit
 ├── KeyboardInterrupt
 ├── GeneratorExit
 └── Exception
      ├── StopIteration
      ├── ArithmeticError
      │    ├── FloatingPointError
      │    ├── OverflowError
      │    └── ZeroDivisionError
      ├── AssertionError
      ├── AttributeError
      ├── BufferError
      ├── EOFError
      ├── ImportError
      ├── LookupError
      │    ├── IndexError
      │    └── KeyError
      ├── MemoryError
      ├── NameError
      │    └── UnboundLocalError
      ├── OSError
      │    ├── FileNotFoundError
      │    ├── PermissionError
      │    └── ...
      ├── RuntimeError
      │    └── RecursionError
      ├── SyntaxError
      │    └── IndentationError
      ├── TypeError
      ├── ValueError
      └── Warning

Practical Error Handling Tips

python

try:
    # Potentially problematic code
    age = int(input("Enter your age: "))
    result = 100 / age
except ValueError:
    print("Please enter a valid number!")
except ZeroDivisionError:
    print("Age cannot be zero!")
except Exception as e:
    print(f"An unexpected error occurred: {e}")
else:
    print(f"Result: {result}")
finally:
    print("Execution completed.")

Understanding these error types helps in writing more robust and maintainable Python code.

Similar Posts

  • Python Input Function: A Beginner’s Guide with Examples

    The input() function in Python is used to take user input from the keyboard. It allows your program to interact with the user by prompting them to enter data, which can then be used in your code. By default, the input() function returns the user’s input as a string. Syntax of input() python Copy input(prompt) Key Points About input() Basic Examples of input() Example…

  • Combined Character Classes

    Combined Character Classes Explained with Examples 1. [a-zA-Z0-9_] – Word characters (same as \w) Description: Matches any letter (lowercase or uppercase), any digit, or underscore Example 1: Extract all word characters from text python import re text = “User_name123! Email: test@example.com” result = re.findall(r'[a-zA-Z0-9_]’, text) print(result) # [‘U’, ‘s’, ‘e’, ‘r’, ‘_’, ‘n’, ‘a’, ‘m’, ‘e’, ‘1’, ‘2’,…

  • recursive function

    A recursive function is a function that calls itself to solve a problem. It works by breaking down a larger problem into smaller, identical subproblems until it reaches a base case, which is a condition that stops the recursion and provides a solution to the simplest subproblem. The two main components of a recursive function…

  • What is Python library Complete List of Python Libraries

    In Python, a library is a collection of pre-written code that you can use in your programs. Think of it like a toolbox full of specialized tools. Instead of building every tool from scratch, you can use the tools (functions, classes, modules) provided by a library to accomplish tasks more efficiently.   Here’s a breakdown…

  • Class06,07 Operators, Expressions

    In Python, operators are special symbols that perform operations on variables and values. They are categorized based on their functionality: ⚙️ 1. Arithmetic Operators ➕➖✖️➗ Used for mathematical operations: Python 2. Assignment Operators ➡️ Assign values to variables (often combined with arithmetic): Python 3. Comparison Operators ⚖️ Compare values → return True or False: Python…

  • Examples of Python Exceptions

    Comprehensive Examples of Python Exceptions Here are examples of common Python exceptions with simple programs: 1. SyntaxError 2. IndentationError 3. NameError 4. TypeError 5. ValueError 6. IndexError 7. KeyError 8. ZeroDivisionError 9. FileNotFoundError 10. PermissionError 11. ImportError 12. AttributeError 13. RuntimeError 14. RecursionError 15. KeyboardInterrupt 16. MemoryError 17. OverflowError 18. StopIteration 19. AssertionError 20. UnboundLocalError…

Leave a Reply

Your email address will not be published. Required fields are marked *