首先,Exception和Error都继承于Throwable类,在java中只有Throwable类型的实例才可以被抛出或者捕获,它是异常处理机制的基本组成类型。
Exception
Exception是java程序运行中可预料的异常情况,咱们可以获取到这种异常,并且对这种异常进行业务外的处理。
Exception分为检查性异常和运行时异常。两者根本区别在于:
检查性异常:必须在编写代码时,就显示的通知程序员必须处理,使用trycatch捕获
java.lang.NullPointerException<空指针异常>
java.lang.OutOfBoundsException<索引超出范围>
java.lang.ArrayIndexOutOfBoundsException<数组越界异常>
java.lang.NumberFormatException<数值类型转换异常>
java.lang.ClassCastException<类型转换异常>
java.lang.ArithmeticException<算数异常>
运行时异常:在程序运行时出现,可以在代码编写时或运行时通过规范可避免发生
java.lang.ClassNotFoundException<类未找到异常>
java.io.IOExceptioon<IO异常>
Error
Error是java中不可预料的异常情况,这种异常发生后会导致JVM不可处理或者不可恢复的情况。所以这种异常不可能抓取到,例如OutOfMemoryError,NoClassDefFoundError等。