隐藏

异常处理
2022年 02月 17 日

Calvin

  1. 异常结构

    java.lang.Throwable
    |----java.lang.Error:Java虚拟机无法解决的严重问题,一般不编写针对性
     的代码进行处理。
         |---java.lang.Exception:可以进行异常处理
              |----编译时异常
                     |---IOException
                        |---FileNotFoundException
                     |---ClassNotFoundException
              |----运行时异常
                   |---ArithmeticException 算术异常
                   |---NumberFormatException 类型转换异常
                   |---ArrayIndexOutOfBoundsException 数组下标越界异常
                   |---NullPointerException 空指针异常
    
  2. 异常处理机制---抓抛模型
    过程一:

         抛:程序正常执行,一旦出现异常,会在异常代码出生成对应的异常类的对象并抛出,其后面的代码不在执行。
     (jvm自己处理,并没有真正的解决异常)

    throw new 异常对象形式

    过程二
    抓:可以理解为对异常的处理

        1. try--catch--finally
        2. throws
        

    二. 异常处理方式一

    try---catch--finally 的使用

     try{
       //可能出现的代码
     }catch(异常的类型1 变量名1){
        //处理的异常方式1
    }catch(异常的类型2 变量名2){
     //处理的异常方式2
    }catch(异常的类型3 变量名3){
        //处理的异常方式3
    }...
    
    finally{
    
     }

    说明:

    1. finally 可选的
    2. try将可能出现异常的代码包装起来,在执行的过程中,一旦出现异常
      会在异常代码出生成对应的异常对象,去catch结构中匹配。其后的代码不在执行
    3. try结构产生的异常对象,匹配了catch的结构,直接处理对应catch的代码。
      处理完之后,继续执行后续代码(没有finally的情况)
    4. catch一般对异常处理的方式
      e.printStackTrace();//打印异常信息
      e.getMessage();打印异常名
    5. try-catch-finally结构可以嵌套
    6. catch中的异常类型如果满足子父类关系,则要求子类一定声明在父类的上面。否则,报错
      catch中的异常类型如果没有子父类关系,则谁声明在上,谁声明在下无所谓

异常处理方式二:

  1. throws +异常类型 写在方法的声明处,指明该方法可能抛出异常
    一旦方法体执行时出现异常,仍然在出现异常处产生对应的异常对象,满足
    throws抛出的异常,直接抛出,后续代码不在执行。
  2. throws +异常类型没有处理掉异常的。
  3. 开发中,如何使用异常处理方式。
    throws+异常类型 形式。当方法调用了其他的方法,对于方法异常处理建议采用

如何自定义异常

  1. 继承存在的异常结构
  2. 提供全局常量:如
    static final long serialVersionUID = -7034897190745766939L;
  3. 提更必要的构造器

异常处理

  1. 异常结构

    java.lang.Throwable
    |----java.lang.Error:Java虚拟机无法解决的严重问题,一般不编写针对性
     的代码进行处理。
         |---java.lang.Exception:可以进行异常处理
              |----编译时异常
                     |---IOException
                        |---FileNotFoundException
                     |---ClassNotFoundException
              |----运行时异常
                   |---ArithmeticException 算术异常
                   |---NumberFormatException 类型转换异常
                   |---ArrayIndexOutOfBoundsException 数组下标越界异常
                   |---NullPointerException 空指针异常
    
  2. 异常处理机制---抓抛模型
    过程一:

         抛:程序正常执行,一旦出现异常,会在异常代码出生成对应的异常类的对象并抛出,其后面的代码不在执行。
     (jvm自己处理,并没有真正的解决异常)

    throw new 异常对象形式

    过程二
    抓:可以理解为对异常的处理

        1. try--catch--finally
        2. throws
        

    二. 异常处理方式一

    try---catch--finally 的使用

     try{
       //可能出现的代码
     }catch(异常的类型1 变量名1){
        //处理的异常方式1
    }catch(异常的类型2 变量名2){
     //处理的异常方式2
    }catch(异常的类型3 变量名3){
        //处理的异常方式3
    }...
    
    finally{
    
     }

    说明:

    1. finally 可选的
    2. try将可能出现异常的代码包装起来,在执行的过程中,一旦出现异常
      会在异常代码出生成对应的异常对象,去catch结构中匹配。其后的代码不在执行
    3. try结构产生的异常对象,匹配了catch的结构,直接处理对应catch的代码。
      处理完之后,继续执行后续代码(没有finally的情况)
    4. catch一般对异常处理的方式
      e.printStackTrace();//打印异常信息
      e.getMessage();打印异常名
    5. try-catch-finally结构可以嵌套
    6. catch中的异常类型如果满足子父类关系,则要求子类一定声明在父类的上面。否则,报错
      catch中的异常类型如果没有子父类关系,则谁声明在上,谁声明在下无所谓

异常处理方式二:

  1. throws +异常类型 写在方法的声明处,指明该方法可能抛出异常
    一旦方法体执行时出现异常,仍然在出现异常处产生对应的异常对象,满足
    throws抛出的异常,直接抛出,后续代码不在执行。
  2. throws +异常类型没有处理掉异常的。
  3. 开发中,如何使用异常处理方式。
    throws+异常类型 形式。当方法调用了其他的方法,对于方法异常处理建议采用

如何自定义异常

  1. 继承存在的异常结构
  2. 提供全局常量:如
    static final long serialVersionUID = -7034897190745766939L;
  3. 提更必要的构造器

上一篇
内部类
下一篇
JAVA多线程

评论区(暂无评论)

这里空空如也,快来评论吧~

我要评论