一、运行时异常
1、数组角标越界、字符串索引越界之类的异常IndexOutOfBoundsException都是运行时异常
2、ClassCastException (类型转换异常)当试图将对象强制转换为不是实例的子类时,抛出该异常
3、ConcurrentModificationException (并发修改异常)当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常(比如用集合的方法在Iterator中操作集合)
4、NullPointerException 空指针异常,也是运行时异常
5、IllegalMonitorStateException:(非法监控状态异常)抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程。(比如用Lock时,调用了await、signal方法,但是忘了没调用lock方法时就出这个异常了)
6、NoSuchElementException由 Enumeration 的 nextElement 方法抛出,表明枚举中没有更多的元素(没有判断hasNext情况下,而且没有了下一个元素时Iterator中next方法也会抛)
二、编译时异常
1、InterruptedException (中断异常)当线程在活动之前或活动期间处于正在等待、休眠或占用状态且该线程被中断时,抛出该异常。有时候,一种方法可能希望测试当前线程是否已被中断,如果已被中断,则立即抛出此异常。(目前wait、sleep、await、join抛出此异常)