1、ClassCastException(类型转换异常)
数据类型转换错误。当抛出这个异常的时候,表示代码企图投射一个对象到一个并不是实例的子类。
public static void main(String[] args) {
// 类型强制转换异常
Object x = new String("String");
System.out.println((Integer) x);
}
控制台输出的异常信息为:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer at cn.com.gjw.MyClass.main(MyClass.java:7)
2、 IndexOutOfBoundsException(数组越界)
当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。
public static void main(String[] args) {
int arr[] = {1,2};
// 此处报数组下标越界异常
System.out.println(arr[2]);
}
控制台输出的异常信息为:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 at cn.com.gjw.MyClass.main(MyClass.java:7)
3、 NullPointerException(空指针)
调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在调用数组这些操作中,对数组操作中出现空指针,很多情况下是一些刚开始学习编程的人常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)。
public static void main(String[] args) {
String str = null;
//此处报空指针异常
System.out.println(str.length());
}
控制台输出的异常信息为:
Exception in thread "main" java.lang.NullPointerException at cn.com.gjw.MyClass.main(MyClass.java:7)