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

  • Generalization vs. Specialization

    Object-Oriented Programming: Generalization vs. Specialization Introduction Inheritance in OOP serves two primary purposes: Let’s explore these concepts with clear examples. 1. Specialization (Extending Functionality) Specialization involves creating a new class that inherits all features from a parent class and then adds new, specific features. The core idea is reusability—you build upon what already exists. Key Principle: Child Class =…

  • re module

    The re module is Python’s built-in module for regular expressions (regex). It provides functions and methods to work with strings using pattern matching, allowing you to search, extract, replace, and split text based on complex patterns. Key Functions in the re Module 1. Searching and Matching python import re text = “The quick brown fox jumps over the lazy dog” # re.search()…

  • Top Programming Languages and Tools Developed Using Python

    Python itself is not typically used to develop other programming languages, as it is a high-level language designed for general-purpose programming. However, Python has been used to create domain-specific languages (DSLs), tools for language development, and educational languages. Here are some examples: 1. Hy 2. Coconut Description: A functional programming language that compiles to Python. It adds…

  • 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…

  • group() and groups()

    Python re group() and groups() Methods Explained The group() and groups() methods are used with match objects to extract captured groups from regex patterns. They work on the result of re.search(), re.match(), or re.finditer(). group() Method groups() Method Example 1: Basic Group Extraction python import retext = “John Doe, age 30, email: john.doe@email.com”# Pattern with multiple capture groupspattern = r'(\w+)\s+(\w+),\s+age\s+(\d+),\s+email:\s+([\w.]+@[\w.]+)’///The Pattern: r'(\w+)\s+(\w+),\s+age\s+(\d+),\s+email:\s+([\w.]+@[\w.]+)’Breakdown by Capture…

  • Special Character Classes Explained with Examples

    Special Character Classes Explained with Examples 1. [\\\^\-\]] – Escaped special characters in brackets Description: Matches literal backslash, caret, hyphen, or closing bracket characters inside character classes Example 1: Matching literal special characters python import re text = “Special chars: \\ ^ – ] [” result = re.findall(r'[\\\^\-\]]’, text) print(result) # [‘\\’, ‘^’, ‘-‘, ‘]’] # Matches…

Leave a Reply

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