[Example-Lab] Hands On Exercise and Quiz on Exceptions

Let us do a simple hands on excercise followed by some questions to understand exceptions better. For theory and concetps of exceptions in Java. you can refer to the note introduction-to-exceptions-in-java

 

Exercise

Create a class MyClass and create three methods myMethod1(), Method2() and Method3().

 

Invoke Method2() from Method1() and Method3() from Method2().

 

Write a code that can throw an exception inside myMethod3() and compile:

File file=new File("filename.txt");

Scanner sc=new Scanner(file);

You will get compilation errors now as you are not handling a checked exception FileNotFoundException.

 

Declare throws over myMethod3() and myMethod2(). You will need to add throws FileNotFoundException on myMethod() as:

public void myMethod3() throws FileNotFoundException {

File file=new File("filename.txt");

Scanner sc=new Scanner(file);

}

 

Handle the exception in myMethod1() by enclosing the code that can throw exception using a try-catch block:

public void myMethod1(){

try{

myMethod2();

}

catch(FileNotFoundException e)

{

e.printStackTrace();

}

}

 

Now retry the excercise by throwing an IOException manually using the throw keyword from inside method3 as:

throw new IOException();

 

Additional Exercises

Example 1: Finally is always executed.

What will the below method return if invoked?

public int myMethod(){

  try {

  return 1;

  }

  Catch (Exception e){

  return 2;

  }

  finally{

  return 3;

 }

}

 

Result

Though it might look like returning 1, it will return 3, as finally block is always executed after a try and/or catch blocks. This is a common interview question asked by many to test your understanding of try-catch-finally. 

 

Example 2: Child exceptions should come before parent exceptions

Assumption: filename.txt does not exist.

Fact: FileNotFoundException is a child of IOException.

Program:

 try {

      File file = new File("filename.txt");

      Scanner sc = new Scanner(file);

      throw new IOException();

    }

    catch (FileNotFoundException e) {

      System.out.println("FileNotFoundException called!!!");

    }

    catch (IOException e) {

      System.out.println("IOException called!!!");

    } 

 

Result

This will print:

FileNotFoundException called!!!

 

Example 3: Parent exception can also catch child exception

Assumption: filename.txt does not exist.

Fact: FileNotFoundException is a child of IOException.

Program:

 try {

      File file = new File("filename.txt");

      Scanner sc = new Scanner(file);

      throw new IOException();

    }

    catch (IOException e) {

      System.out.println("IOException called!!!");

    } 

 

Result

This will print:

IOException called!!!

References and notes: 

If you are interested in learning more, try the examples @ http://www.oracle.com/technetwork/articles/java/java7exceptions-486908.h...

Comments

for question7: reached end of file while parsing ,why am i getting this error 

Was it useful?

Search the Web

Custom Search

Searches whole web. Use the search in the right sidebar to search only within javajee.com!!!