运行时异常都是程序员问题::
package com.itheima.d4_exception_runtimeException;
public class ExceptionDemo {
public static void main(String[] args) {
System.out.println("程序开始: ");
// 1. 数组索引越界异常: ArrayIndexOutOfBoundsException
int[] arr = {1, 2, 3};
System.out.println(arr[2]);
// System.out.println(arr[3]); // 该数组没有索引为3的元素,所以异常
// 2. 空指针异常: NullPointerException 直接输出没问题,但是调用空指针的变量的功能就会报错
String name = null;
System.out.println(name); // 直接输出是一个null值
// System.out.println(name.length()); // 由于他是一个空值 找不到字符串的长度(会报空指针异常)
// 3. 类型转换异常 ClassCastException
Object o = 23; // Object是祖宗类,什么类型的都可以接收
// String s = (String) o; // 继承和实现关系强转不会报错
// 编译时就报错,运行时报错: 因为o是整型,不能转换成字符串
// System.out.println(s);
// 4. 数字操作异常:.ArithmeticException
// int c = 10 / 0; // 0 不能作除数
// System.out.println(c);
// 5. 数字转换异常 : NumberFormatException
String number = "23"; // 字符串数据只要是对应的值就可以转换成数字类型
// String number = "23.3"; // 类型出错了,报错(这里只能转浮点数)
// String number = "23aa"; // 也报错
// 字符串数据只要是对应的值就可以转换成数字类型 //valueOf可以将字符串转换成对应的基础类型,这里用Integer接收
Integer it = Integer.valueOf(number); // 运行时异常报错了在这里
System.out.println(it + 1); //24
}
}