Skip to main content

GRADE XII - CS - Exception Handling

 

Exception Handling

When a program runs, sometimes errors can occur (like dividing by zero or trying to open a file that doesn't exist). These errors are called exceptions.

Exception Handling allows the program to respond to errors gracefully instead of crashing.

Why Use Exception Handling?

  • Prevents the program from crashing.
  • Helps in debugging.
  • Makes the program user-friendly.

 

Example Without Exception Handling

a = int(input("Enter a number: "))

b = int(input("Enter another number: "))

print("Result:", a / b)       # If b = 0, program crashes!

 

If the user enters 0 for b, it shows:

ZeroDivisionError: division by zero

 

Using Try-Except to Handle Exceptions

try:

    a = int(input("Enter a number: "))

    b = int(input("Enter another number: "))

    print("Result:", a / b)

except ZeroDivisionError:

    print("You cannot divide by zero!")

Explanation:

  • try block: Code that might cause an error.
  • except block: Code that runs if an error occurs.

  

Example of ValueError

num = int(input("Enter a number: "))   # if user enters invalid value ‘abc’

CODE WITH TRY BLOCK

try:

    num = int(input("Enter a number: "))

    print("You entered:", num)

except ValueError:

    print("Invalid input! Please enter a number.")

 

 🔸 Multiple Exceptions

try:

    a = int(input("Enter a number: "))

    b = int(input("Enter another number: "))

    print("Result:", a / b)

except ZeroDivisionError:

    print("Error: Cannot divide by zero.")

except ValueError:

    print("Error: Please enter valid numbers.")

 

 🔸 Using else and finally

try:

    a = int(input("Enter a number: "))

    b = int(input("Enter another number: "))

    result = a / b

except ZeroDivisionError:

    print("Cannot divide by zero.")

else:

    print("Division result is:", result)

finally:

    print("This block always runs.")

  • else: Runs if no error occurs.
  • finally: Runs always, whether there’s an error or not.

 

Handling Exception while Opening a File

EG: FileNotFoundError exception handling for opening a user given filename

filename = input('Enter the file name to read -: ')

fobj = open(filename, "r")       # If file doesn't exist, it will crash here

str = fobj.readlines()           # Read all lines into a list

print(str)

fobj.close()                     # Close the file

 

CODE WITH TRY:

filename = input('Enter the file name to read -: ')

try:

    fobj = open(filename, "r")

    str = fobj.readlines()  # file read & assigned to a variable

    print(str)

    fobj.close()  # close only if file is successfully opened

except FileNotFoundError:

    print('There is no file named', filename)


IOError stands for Input/Output Error.

It occurs when an input/output operation fails, such as:

  • Trying to open a file that doesn't exist
  • Trying to read/write to a file that cannot be accessed

Eg:

try:

    file = open("data.txt", "r")  # If file doesn't exist

    content = file.read()

    print(content)

    file.close()

except IOError:

    print("An input/output error occurred.")

 

Common Run-Time Errors in Python

| Error Type          | Cause                                      |

| ------------------- | ------------------------------------------ |

| `ZeroDivisionError` | Division by 0                              |

| `FileNotFoundError` | File not found                             |

| `ValueError`        | Wrong value (e.g. text in place of number) |

| `IndexError`        | Invalid index in a list or string          |

| `TypeError`         | Operation on incompatible data types       |


Comments

Popular posts from this blog

PYTHON - MYSQL CONNECTIVITY CODE

  #INSERTION OF DATA import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", passwd="root", database="school" ) print("Successfully Connected") #print(mydb) mycursor=mydb.cursor()   v1=int(input("enter ID:")) v2=input("enter name:") v3=input("enter Gender:") v4=int(input("enter age:")) sql='insert into TEACH values("%d","%s","%s","%s")'%(v1,v2,v3,v4) print(sql) mycursor.execute(sql) mydb.commit() print("record added") #MYSQL Connection code – Deletion on database SOURCE CODE: s=int(input("enter id of TEACHER to be deleted:")) r=(s,) v="delete from TEACH where id=%s" mycursor.execute(v,r) mydb.commit() print("record deleted") MYSQL Connection code – Updation on database SOURCE CODE: import mysql.connector mydb = mysql.connector.c...

REVISION IF CONSTRUCT | CLASS TEST

                                                                                     CLASS TEST 1. Write a Python program that asks the user for their age, gender, and current fitness level (beginner, intermediate, or advanced). Based on this information, suggest a suitable fitness plan using if-else statements. Requirements: Inputs : Age (integer) Gender (male/female) Fitness level (beginner/intermediate/advanced) Outputs : Recommend a fitness plan that includes: Suggested workout duration. Type of exercises (e.g., cardio, strength, flexibility). Rest days. Logic : Use if-else to determine the plan based on conditions such as: Age group (e.g., <18, 18–40, >40). Fitness leve...