What is an exception? * An exception is an error condition that changes the normal flow of control in a program * When an Exception occurs the normal flow of the program is disrupted and the program/Application terminates abnormally, which is not recommended, therefore these exceptions are to be handled
Why Exception Occurs? An exception can occur for many different reasons, below given are some scenarios where exception occurs. >>A user has entered invalid data. >>A file that needs to be opened cannot be found. >>A network connection has been lost in the middle of communications or the JVM has run out of memory.
Exception Hierarchy
Exception Has two Main classes : 1. Checked exceptions : known as compile time exceptions. Programmer should take care of (handle) these exceptions 2. Un c hecked exceptions : Known as Runtime Exceptions. These include programming bugs, such as logic error also.
Checked exceptions
import java.io.File ; import java.io.FileReader ; public class FilenotFound_Demo { public static void main(String args []){ File file=new File("E://file.txt"); FileReader fr = new FileReader (file); } } Output: C:\>javac FilenotFound_Demo.java FilenotFound_Demo.java:8: error: unreported exception FileNotFoundException ; must be caught or declared to be thrown FileReader fr = new FileReader (file); Example
Unchecked exceptions
Example public class Unchecked_Demo { public static void main(String args []){ int num []={1,2,3,4}; System.out.println ( num [5]); } } Output: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException : 5 at Exceptions.Unchecked_Demo.main (Unchecked_Demo.java:8
Exception Handling Terms 1.Try – used to enclose a segment of code that may produce a exception 2.Catch – placed directly after the try block to handle one or more exception types 3.Throw – to generate an exception or to describe an instance of an exception 4.Finally – optional statement used after a try-catch block to run a segment of code regardless if a exception is generated
Try – Catch Block Try – used to enclose a segment of code that may produce a exception Catch – placed directly after the try block to handle one or more exception types try { statements; } catch(Exception ex) { perform operations before exits ; throw ex; }
Multiple catch statements try { <code segment that may throw an exception..> } catch ( IOException e) { System.out.println ( e.getMessage ()); } catch ( FileNotFoundException e ){ System.out.println ( “ FileNotFound ! ” ); }
By using Throw THROW -generate an exception or to describe an instance of an exception Define a class : public class EmptyStackException extends Exception { } Here is how you use the class: public class Stack { public Object Pop() throws EmptyStackException { if (Empty()) throw new EmptyStackException (); ... } } Note that you must use new to create an exception object; you cannot just throw an exception.
Example static class Exception2{ static int sum( int num1, int num2){ if (num1 == 0) throw new ArithmeticException ("First parameter is not valid"); else System.out.println ("Both parameters are correct!!"); return num1+num2 ; } public static void main(String args []){ int res=sum(1,12); System.out.println (res); System.out.println ("Continue Next statements"); } }