一、引入
二、异常介绍
三、异常体系一览图
四、常见的运行时异常
1.NullPointerException 空指针异常
当应用程序试图在需要对象的地方使用null时,抛出该异常。
(当要使用对象,但对象还未创建或为null时,会抛出NullPointerException异常)
public class NullPointerException_ {
public static void main(String[] args) {
String name1 = "韩顺平教育";
System.out.println(name1.length());//5
String name2 = null;
System.out.println(name2.length());//NullPointerException
}
}
2.ArithmeticException 数学运算异常
当出现异常的运算条件时,抛出此异常。例如:一个整数“除以0”时,抛出此异常。
3.ArrayIndexOutOfBoundsException 数组下标越界异常
用非法索引访问数组时抛出的异常。如果索引为负或者大于等于数组大小,则该索引为非法索引。
public class ArrayIndexOutOfBoundsException_ {
public static void main(String[] args) {
int[] arr = {1, 3, 5};
for (int i = 0; i <= arr.length; i++) {
System.out.println(arr[i]);
}//ArrayIndexOutOfBoundsException,
// 数组arr中的元素下标为0,1,2,没有下标为3的元素,故而异常
}
}
4.ClassCastException 类型转换异常
当试图将对象强制转换为不对映的子类时,抛出该异常。
public class ClassCastException_ {
public static void main(String[] args) {
A a = new B();//父类引用指向子类对象——多态向上转型
B b = (B)a;//多态向下转型
C c = (C)a;//ClassCastException
}
}
//B和C都是A的子类
class A {}
class B extends A {}
class C extends A {}
5.NumberFormatException 数字格式不正常异常
当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
→利用该异常可以确保输入是否是满足条件的数字。
public class NumberFormatException_ {
public static void main(String[] args) {
String name1 = "1234";
int num1 = Integer.parseInt(name1);
System.out.println(num1);//1234
String name2 = "韩顺平教育";
int num2 = Integer.parseInt(name2);
System.out.println(num2);//NumberFormatException
//parseInt(String s):把字符串转为整数
}
}