运行时异常都是程序员问题::image.png

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