Exception Handling (Cambridge (CIE) A Level Computer Science): Revision Note

Exam code: 9618

Robert Hampton

Written by: Robert Hampton

Reviewed by: James Woodhouse

Updated on

Exception handling

What is exception handling?

  • An exception is an unexpected event that disrupts normal program execution

  • Exception handling is how a program detects and responds to these errors, allowing it to recover or shut down cleanly

Why use exception handling?

  • Prevents programs from crashing unexpectedly

  • Allows for user-friendly error messages

  • Makes programs more robust and reliable

  • Handles problems caused by:

    • Division by zero

    • File not found or end-of-file errors

    • Hardware or device failures (e.g. printers, lost connections)

    • Invalid input from users

Causes of exceptions

Cause

Example

Programming errors

Uninitialised variables, logic errors

User errors

Entering text instead of a number

Hardware failure

Lost connection to printer, disk error

Pseudocode

TRY
    // Code that might cause an error
    OPEN "data.txt" FOR READ
    READ record FROM "data.txt"
    SET result = 10 / userInput
EXCEPT
    // Code to handle the error
    OUTPUT "An error occurred during file processing or division."
    CLOSE "data.txt"
ENDTRY

Key terms

Keyword

Purpose

TRY

Starts a block of code that may raise an error

EXCEPT

Executes if an error occurs in the TRY block

ENDTRY

Marks the end of the exception handling structure

Python

try:
    file = open("data.txt", "r")
    line = file.readline()
    user_input = int(input("Enter a number: "))
    result = 10 / user_input
    print("Result:", result)
    file.close()

except FileNotFoundError:
    print("Error: File not found.")

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

except Exception as e:
    print("An unexpected error occurred:", e)

finally:
    try:
        file.close()
    except:
        pass  # file might not have opened

Java

import java.io.*;
import java.util.Scanner;

public class ExceptionHandlingExample {
    public static void main(String[] args) {
        BufferedReader reader = null;

        try {
            reader = new BufferedReader(new FileReader("data.txt"));
            String line = reader.readLine();

            Scanner scanner = new Scanner(System.in);
            System.out.print("Enter a number: ");
            int userInput = scanner.nextInt();

            int result = 10 / userInput;
            System.out.println("Result: " + result);

        } catch (FileNotFoundException e) {
            System.out.println("Error: File not found.");
        } catch (ArithmeticException e) {
            System.out.println("Error: Cannot divide by zero.");
        } catch (IOException e) {
            System.out.println("Error reading from file.");
        } catch (Exception e) {
            System.out.println("An unexpected error occurred: " + e.getMessage());
        } finally {
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (IOException e) {
                // Ignore closing error
            }
        }
    }
}

You've read 0 of your 5 free revision notes this week

Unlock more, it's free!

Join the 100,000+ Students that ❤️ Save My Exams

the (exam) results speak for themselves:

Did this page help you?

Robert Hampton

Author: Robert Hampton

Expertise: Computer Science Content Creator

Rob has over 16 years' experience teaching Computer Science and ICT at KS3 & GCSE levels. Rob has demonstrated strong leadership as Head of Department since 2012 and previously supported teacher development as a Specialist Leader of Education, empowering departments to excel in Computer Science. Beyond his tech expertise, Robert embraces the virtual world as an avid gamer, conquering digital battlefields when he's not coding.

James Woodhouse

Reviewer: James Woodhouse

Expertise: Computer Science & English Subject Lead

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.