Exceptions

An exception is an event, which occurs during the execution of a program, that disrupts the normal flow of the program’s instructions

Built-in exceptions are the exceptions which are available in Java libraries

ArithmeticException
It is thrown when an exceptional condition has occurred in an arithmetic operation.

// Java program to demonstrate ArithmeticException
class ArithmeticException_Demo
{
public static void main(String args[])
{
try {
int a = 30, b = 0;
int c = a/b; // cannot divide by zero
System.out.println ("Result = " + c);
}
catch(ArithmeticException e) {
System.out.println ("Can't divide a number by 0");
}
}
}

ArrayIndexOutOfBoundsException
It is thrown to indicate that an array has been accessed with an illegal index. The index is either negative or greater than or equal to the size of the array.

// Java program to demonstrate ArrayIndexOutOfBoundException
class ArrayIndexOutOfBound_Demo
{
public static void main(String args[])
{
try{
int a[] = new int[5];
a[6] = 9; // accessing 7th element in an array of
// size 5
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println ("Array Index is Out Of Bounds");
}
}
}

ClassNotFoundException
This Exception is raised when we try to access a class whose definition is not found

FileNotFoundException
This Exception is raised when a file is not accessible or does not open.

//Java program to demonstrate FileNotFoundException
class File_notFound_Demo {

public static void main(String args[]) {
try {

// Following file does not exist
File file = new File("E://file.txt");

FileReader fr = new FileReader(file);
} catch (FileNotFoundException e) {
System.out.println("File does not exist");
}
}
}

IOException
It is thrown when an input-output operation failed or interrupted

InterruptedException
It is thrown when a thread is waiting, sleeping, or doing some processing, and it is interrupted.

NoSuchFieldException
It is thrown when a class does not contain the field (or variable) specified

NoSuchMethodException
It is thrown when accessing a method which is not found.

NullPointerException
This exception is raised when referring to the members of a null object. Null represents nothing

//Java program to demonstrate NullPointerException
class NullPointer_Demo
{
public static void main(String args[])
{
try {
String a = null; //null value
System.out.println(a.charAt(0));
} catch(NullPointerException e) {
System.out.println("NullPointerException..");
}
}
}

NumberFormatException
This exception is raised when a method could not convert a string into a numeric format.

// Java program to demonstrate NumberFormatException
class NumberFormat_Demo
{
public static void main(String args[])
{
try {
// "akki" is not a number
int num = Integer.parseInt ("akki") ;

System.out.println(num);
} catch(NumberFormatException e) {
System.out.println("Number format exception");
}
}
}

RuntimeException
This represents any exception which occurs during runtime.

StringIndexOutOfBoundsException
It is thrown by String class methods to indicate that an index is either negative or greater than the size of the string

// Java program to demonstrate StringIndexOutOfBoundsException
class StringIndexOutOfBound_Demo
{
public static void main(String args[])
{
try {
String a = "This is like chipping "; // length is 22
char c = a.charAt(24); // accessing 25th element
System.out.println(c);
}
catch(StringIndexOutOfBoundsException e) {
System.out.println("StringIndexOutOfBoundsException");
}
}
}

User Defined Exception we can create our own exception by extend Exception class

class MyException extends Exception
{
//store account information
private static int accno[] = {1001, 1002, 1003, 1004};

private static String name[] =
{"Nish", "Shubh", "Sush", "Abhi", "Akash"};

private static double bal[] =
{10000.00, 12000.00, 5600.0, 999.00, 1100.55};

// default constructor
MyException() { }

// parameterized constructor
MyException(String str) { super(str); }

// write main()
public static void main(String[] args)
{
try {
// display the heading for the table
System.out.println("ACCNO" + "\t" + "CUSTOMER" +
"\t" + "BALANCE");

// display the actual account information
for (int i = 0; i < 5 ; i++)
{
System.out.println(accno[i] + "\t" + name[i] +
"\t" + bal[i]);

// display own exception if balance < 1000
if (bal[i] < 1000)
{
MyException me =
new MyException("Balance is less than 1000");
throw me;
}
}
} //end of try

catch (MyException e) {
e.printStackTrace();
}
}
}