Programming with Python

⌘K
  1. Home
  2. Docs
  3. Programming with Python
  4. Object-oriented Programmi...
  5. Exception Handling in Python

Exception Handling in Python

Exception handling in Python refers to the process of responding to the occurrence of exceptions—errors detected during execution.

Thank you for reading this post, don't forget to subscribe!
  • Python provides mechanisms like try, except, finally, and raise to handle exceptions gracefully.
  • It helps in preventing program crashes and allows programs to handle error conditions more effectively.

Q.) What is the Use of Exception Handling in Python?

  • It is used to gracefully manage and respond to errors that occur during the execution of a program, without crashing the program. It helps to detect runtime errors and take corrective action.

The try block is used to wrap code that might generate an exception.

  • If an error occurs within the try block, the flow of control immediately moves to the except block.

Example: If the input cannot be converted to an integer (e.g., input is “abc”), an exception will be thrown and caught in the except block.

try:
    num = int(input("Enter a number: "))
    print("You entered:", num)

The except block contains the code that runs if an exception is raised in the try block.

  • It can handle specific exception types.

Example:

try:
    value = 10 / 0
except ZeroDivisionError:
    print("Error: Cannot divide by zero.")

The finally block will execute no matter what — whether or not an exception is raised.

  • It’s typically used for cleanup tasks like closing files or database connections.

Example:

try:
    file = open("data.txt", "r")
    print(file.read())
except FileNotFoundError:
    print("File not found.")
finally:
    print("Closing file...")
    file.close()  # This will run whether or not an exception occurred

The raise statement is used to manually trigger an exception in a program.

  • It is helpful for enforcing constraints or signaling unexpected conditions.

Example:

def divide(a, b):
    if b = = 0:
        raise ZeroDivisionError("You cannot divide by zero.")
    return a / b

try:
    print(divide(10, 0))
except ZeroDivisionError as e:
    print("Caught an exception:", e)

How can we help?