Arquivo da tag: Java

Exceptions Java

  • Exceptions thrown by JVM

1. ArrayIndexOutOfBoundsException
Thrown when attempting to access an array with an invalid index value (either negative or beyond the length of the array).
Example :
int[] ia = new int[]{ 1, 2, 3}; // ia is of length 3.
System.out.println(ia[3]); //exception !!!

2. ClassCastException
Thrown when attempting to cast a reference variable to a type that fails the IS-A test.
Example :
Object s = “asdf”;
StringBuffer sb = (StringBuffer) s; //exception at runtime because s is referring to a String.

3. NullPointerException
Thrown when attempting to call a method or field using a reference variable that is pointing to null.
Example :
String s = null;
System.out.println(s.length()); //exception!!!

4. ExceptionInInitializerError
Thrown when any exception is thrown while initializing a static variable or a static block.
Example :
public class X { int k = 0;
static{
k = 10/0; //throws DivideByZeroException but this is wrapped into a
//ExceptionInInitializationError and thrown outside.
}
}

5. StackOverflowError
Thrown when the stack is full. Usually thrown when a method calls itself and there is no boundary condition.
Example :
public void m1(int k){
m1(k++); // exception at runtime.
}

6. NoClassDefFoundError
Thrown if the Java Virtual Machine or a ClassLoader instance tries to load in the definition of a class (as part of a normal method call or as part of creating a new instance using the new expression) and no definition of the class could be found. The searched-for class definition existed when the currently executing class was compiled, but the definition can no longer be found.
Example :
Object o = new com.abc.SomeClassThatIsNotAvailableInClassPathAtRunTime(); // exception at runtime.

 

  • Exceptions thrown by Application Programmer

1. IllegalArgumentException
Thrown when a method receives an argument that the programmer has determined is not legal.
Example:
public void processData(byte[] data, int datatype)
{
if(datatype != 1 || datatype != 2) throw new IllegalArgumentException();
else …
}

2. IllegalStateException
Signals that a method has been invoked at an illegal or inappropriate time. In other words, the Java
environment or Java application is not in an appropriate state for the requested operation. Note that this is
different from IllegalMonitorStateException that is thrown by JVM when a thread performs an operation
that it is not permitted to (say, calls notify(), without having the lock in the first place).
Example:
Connection c = …
public void useConnection()
{
if(c.isClosed()) throw new IllegalStateException();
else …
}

3. NumberFormatException
It extends from IllegalArgumentException. It is thrown when a method that converts a String to a number
receives a String that it cannot convert.
Example:
Integer.parseInt(“asdf”);

4. AssertionError
Thrown to indicate that an assertion has failed i.e.when an assert statement’s boolean test expression returns false.
Example:
private void internalMethod(int position)
{
assert (position<100 && position >0) : position;
}

Enjoy
Marcos Carvalho