Exception handling & Types of Errors in Python Programming

UpComing SoftWare Training Demos

πŸš€ *Gen AI EngineerΒ Telugu (Production Focused)*
πŸ—“οΈ *Date:* 30th Sept 2026, 07:00AM IST
πŸ“ *Register Now!:*
https://www.vlrt.in/gr
πŸ‘₯ *Join WA Community:*
https://www.vlrt.in/gw
πŸ’‘*Course Content:*
https://www.vlrt.in/ai
▢️ *Demo Videos:*
https://www.vlrt.in/gv

πŸš€ *Service now Admin/ Development (ITSM)FREE Demo in Telugu*
πŸ—“οΈ *Date:* 30th Sept 2026, 08:00AM IST
πŸ“ *Register Now!:*
https://www.vlrt.in/7r
πŸ‘₯ *Join WA Community:*
https://www.vlrt.in/7w
πŸ’‘*Course Content:*
https://www.vlrt.in/7c
▢️ *Demo Videos:*
https://www.vlrt.in/7v

πŸš€ *Vulnerability Management Training Demo*
πŸ—“οΈ *Date:* 30th Sept 2026, 09:00 AM IST
πŸ“*Register Now!:*
https://www.vlrt.in/vr
πŸ‘₯ *Join Community:*
https://www.vlrt.in/cw
πŸ’‘ *Course Content:*
https://www.vlrt.in/vc
▢️ *Demo Videos:*
https://www.vlrt.in/Vm

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

  • What is list

    In Python, a list is a built-in data structure that represents an ordered, mutable (changeable), and heterogeneous (can contain different data types) collection of elements. Lists are one of the most commonly used data structures in Python due to their flexibility and dynamic nature. Definition of a List in Python: Example: python my_list = [1, “hello”, 3.14,…

  • Β List ComprehensionsΒ 

    List Comprehensions in Python (Basic) with Examples List comprehensions provide a concise way to create lists in Python. They are more readable and often faster than using loops. Basic Syntax: python [expression for item in iterable if condition] Example 1: Simple List Comprehension Create a list of squares from 0 to 9. Using Loop: python…

  • positive lookahead assertion

    A positive lookahead assertion in Python’s re module is a zero-width assertion that checks if the pattern that follows it is present, without including that pattern in the overall match. It is written as (?=…). The key is that it’s a “lookahead”β€”the regex engine looks ahead in the string to see if the pattern inside…

  • Python and PyCharm Installation on Windows: Complete Beginner’s Guide 2025

    Installing Python and PyCharm on Windows is a straightforward process. Below are the prerequisites and step-by-step instructions for installation. Prerequisites for Installing Python and PyCharm on Windows Step-by-Step Guide to Install Python on Windows Step 1: Download Python Step 2: Run the Python Installer Step 3: Verify Python Installation If Python is installed correctly, it…

  • Challenge Summary: Inheritance – Polygon and Triangle Classes

    Challenge Summary: Inheritance – Polygon and Triangle Classes Objective: Create two classes where Triangle inherits from Polygon and calculates area using Heron’s formula. 1. Polygon Class (Base Class) Properties: Methods: __init__(self, num_sides, *sides) python class Polygon: def __init__(self, num_sides, *sides): self.number_of_sides = num_sides self.sides = list(sides) 2. Triangle Class (Derived Class) Inheritance: Methods: __init__(self, *sides) area(self) python import math…

  • re.subn()

    Python re.subn() Method Explained The re.subn() method is similar to re.sub() but with one key difference: it returns a tuple containing both the modified string and the number of substitutions made. This is useful when you need to know how many replacements occurred. Syntax python re.subn(pattern, repl, string, count=0, flags=0) Returns: (modified_string, number_of_substitutions) Example 1: Basic Usage with Count Tracking python import re…

Leave a Reply

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