Exception Handling in Python

Python

Basic Exception Handling

try:
    1 / 0
except Exception as e:
    print(f"{type(e).__name__}: {e}")
# Output: ZeroDivisionError: division by zero

Catching Specific Exceptions

try:
    x = int("abc")
except ValueError as e:
    print(f"ValueError: {e}")

Using else and finally

try:
    result = 10 / 2
except ZeroDivisionError:
    print("Cannot divide by zero.")
else:
    print(f"Result: {result}")
finally:
    print("This block always executes.")

Raising Exceptions

def divide(a, b):
    if b == 0:
        raise ValueError("b cannot be zero")
    return a / b

Best Practices

  • Catch specific exceptions when possible.
  • Use finally for cleanup actions (e.g., closing files).
  • Avoid catching Exception unless necessary.
  • Use informative error messages.

References