面试题答案
一键面试- NullPointerException:
- 场景:当程序试图访问一个空对象的成员变量、调用空对象的方法,或者在需要对象的地方使用了null值时抛出。例如,调用一个未初始化的对象的方法,如
String s = null; int length = s.length();
,这里s
为null
,调用length()
方法就会抛出该异常。
- 场景:当程序试图访问一个空对象的成员变量、调用空对象的方法,或者在需要对象的地方使用了null值时抛出。例如,调用一个未初始化的对象的方法,如
- IndexOutOfBoundsException:
- 场景:它是一个更通用的越界异常类,其子类
ArrayIndexOutOfBoundsException
用于访问数组时索引超出范围,比如int[] arr = new int[5]; int value = arr[10];
,数组arr
合法索引范围是0到4,访问arr[10]
就会抛出此异常;StringIndexOutOfBoundsException
用于对字符串操作时索引超出范围,例如String str = "hello"; char c = str.charAt(10);
,字符串str
长度为5,合法索引是0到4,访问str.charAt(10)
就会抛出该异常。
- 场景:它是一个更通用的越界异常类,其子类
- ClassCastException:
- 场景:当试图将一个对象强制转换为不兼容的类型时抛出。例如,有两个类
Dog
和Cat
继承自Animal
,如果Animal animal = new Dog(); Cat cat = (Cat) animal;
,这里将Dog
类型对象强制转换为Cat
类型,由于Dog
对象本质不是Cat
类型,就会抛出ClassCastException
。
- 场景:当试图将一个对象强制转换为不兼容的类型时抛出。例如,有两个类
- ArithmeticException:
- 场景:在进行算术运算时出现错误的情况下抛出。最常见的是除数为零的情况,如
int result = 10 / 0;
,整数除法中除数不能为零,这种情况下就会抛出此异常。
- 场景:在进行算术运算时出现错误的情况下抛出。最常见的是除数为零的情况,如