11.异常

异常

概念:程序在运行可能会出现的一些错误被称为异常。

异常产生后,如果不做任何处理,则程序会终止运行,提前结束

  1. 捕获处理异常

    (1) 异常的捕获为了避免程序终止运行

    (2) try{

    ​ //业务逻辑

    ​ }catch(Exception e){

    ​ //异常处理

    ​ }finally{

    ​ //不管是否产生异常都会运行

    }。

    (3) Finally语句块有以下四种情况不会运行

    ​ ① 在finally语句中出现异常

    ​ ② 在前面的代码中使用System.exit().退出了程序

    ​ ③ 程序所在线程死亡

    ​ ④ 关闭了CPU

  2. 抛出异常

    (1) Throws

    ① 出现在方法名后

    ② 往上一级抛出不处理,如果上一级不处理可以继续抛出,但最终都要被处理

    ③ 如果都不处理,则会由JVM虚拟机进行处理

    (2) Throw

    ① 出现在方法体中,抛出一个异常对象

    ② 程序在运行到throw语句时后面的语句将不在执行

    ③ 通常使用try-catch语句 处理throw 抛出的异常

  3. 自定义异常

    (1) 自定义异常的类需要继承Exception

    (2) 和其他异常的用法一致

    (3) 通常使用throw来抛出

  4. 异常分类

    (1) Exception

    (2) RuntimeException

    (3) Error

  5. 异常使用原则

    (1) 不要忽略捕获到的异常

    (2) 不要过度使用不必要的异常处理

    (3) 不要使用过于庞大的try-catch块

    (4) 子类抛出的异常不能比父类的更高级

  6. 常见异常

    异常描述
    NullPointerException空指针异常 (出现条件:使用对象(字段/方法)值为null时)
    ArrayIndexOutOfBoundsException数组下标越界异常 (出现条件:使用超出数组下标范围的下标)
    NumberFormatException数字格式化异常 (出现条件:不符合转换格式的字符串被转换成数字时)
    ParseException解析异常 (出现条件:需要转换成Date的字符串内容,不符合SimpleDateFormat对象指定的格式)
    ClassCastException类型转换异常 (出现条件:将一个类型转换成另一个类型,两个类型没有继承关系)
    ArithmeticException数学运算异常 (出现条件: ex:1/0)
    NegativeArraySizeException创建一个大小为负数的数组错误异常
    IllegalArgumentException传递非法参数异常
posted @ 2022-09-12 18:11  晓洋^  阅读(70)  评论(0)    收藏  举报