Exceptions
ArithmeticException
This exception generally occurs when a calculation that it not arithmetically possible. An example is when you divide a number be zero.
NullPointerException
Recall that when you create an object (or an instance of a class), you're technically creating a reference to a memory location on your computer. If you declare the variable but don't utilize a constructor with the new word (or if you don't assign any value to String), the variable becomes a null pointer, meaning it doesn't point to anything since you didn't assign a memory location to it. Primitive types don't generally have this issue because they have automatic initialization.
IndexOutOfBoundsException
The IndexOutOfBoundsException is invoked when the current index you're using in either a String or an Array is out of range.
ArrayIndexOutOfBoundsException
ArrayIndexOutOfBoundsException simply implements the IndexOutOfBoundsException on Arrays and is invoked when a you access an array element that doesn't exist through an illegal index. This index that would invoke this exception specifically can either be equal to the array length, greater than the array length, or simply negative.
IllegalArgumentException
The IllegalArgumentException is invoked when you try to to invoke another method and the arguments you or the computer puts when invoking it do not match the paramters within the respective method signature.