一、编译时异常:
1、除以0发生算数异常(ArithmeticException)
关键技术解析:在数学中,除以0的操作时不对的,在Java程序中也是这样,一个除数为0,就要抛出异常.
2、数组下标越界异常(ArrayIndexOutOfException)
关键技术解析:ArrayIndexOutOfException异常用非法索引访问数组时抛出的异常,如果索引为负或大于等于数组大小,则该索引为非法索引。
3、数组元素类型不匹配异常(ArrayStoreExption)
关键技术解析:定义三个不同类型的元素对象,这三个元素对象相互组合,就会出现数组元素类型不匹配异常。试图将错误类型的对象储存到一个对象数组时抛出异常。
4、强制类型转换异常(ClassCastException)
关键技术解析:在进行转换时,转换的两个类型不匹配,就会发生异常。
5、索引越界异常(IndexOutOfBoundsException)
关键技术解析:索引越界异常在某排序索引(例如对字符串或数组的排序)超出范围是抛出。应用程序可以为这个类创建子类,以指示类似的异常。
6、空指针异常(NullPointerException)
关键技术解析:当应用程序试图在需要对象的地方使用null时,抛出该异常。这种情况包括:
a.调用null对象的实例方法
b.访问或修改null对象的字段
c.应用程序应该抛出该类实例,只是其他对null对象的非法使用
7、数字格式转换异常(NumberFornatException)
关键技术解析:当应用试图把一个字符串转换成一个数值类型,但这个字符串没有恰当的格式时就会抛出数字格式转换异常。
8、字符串索引越界异常(StringIndexOutException)
关键技术解析:StringIndexOutException异常用非法索引访问字符串抛出的异常。如果索引为负或大于等于字符串的大小,则该索引为非法索引。
8、操作错误(UnsupportedOperationException)
关键技术解析:java.lang.UnsupportedOperationException异常是由于Arrays.asList()返回java.util.Arrays$ArrayList,而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,add等方法在AbstractList中是默认抛出UnsupportedOperationException而且不做任何操作。
二、运行时异常
1、找不到指定类时发生的异常(ClassNotFoundException)
关键技术解析:
a.当程序加载Class类中的forName()方法时,异常抛出。同时,也有其它方法可以抛出同样的异常,如:ClassLoader类中的findSystemClass方法,loadClass方法。
b.在构造时提供并通过getException()方法访问的"加载类是引发的可选异常",现在被称为原因,它可以通过Throwable.getCause()方法以及上面提到的"遗留犯方法"来访问。
2、请求的方法不存在(NoSuchMethodException)
关键技术解析:当应用试图调用某个类的某种方法,而该类中没有该方法的定义时抛出该异常。