[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?

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)