异常

作者: 知止睿 | 来源:发表于2018-12-17 17:46 被阅读0次

    1.Throwable

    Throwable类分为error和exception,前者较为严重,在运行的时候出现。后者在编译,运行的时候出现

    自定义方法使用时,需要调用者传递参数时,首先需要对参数进行合法性判断,若参数不合法,应该告诉调用者,这时需要使用抛出异常的方式

    public static int getArray (int [] arr) throws Exception{

        if(arr==null){

    //异常只能位于方法中,且抛出的必须是异常的对象,即exception或者子类

            throw new Exception("传递的数组不存在");                                                                                

        }

    }

    2.异常的处理方式

    try{

        被检测的代码

        可能出现异常的代码

    }catch(异常类名 变量){
        异常的处理方式

        循环,判断,调用方法,变量

    }finally{

        无论是否有异常,必须要执行的代码

     }

    3.多catch处理细节

        平级异常:抛出的异常类之间,没有继承关系,书写没有顺序区分

        上下级异常:越高级的父类,需要写在下方

        原因:多态调用,否则下方的catch永远不会执行

        catch(NullPointerException ex)

        catch(Exception ex)

    4.运行时期异常的特点

        编译异常:调用了抛出异常的方法,不处理的话编译失败(throw Exception try catch)

        运行异常:抛出的异常是RuntimeException类,或者他的子类

                          声明中不需要写throws语句,调用者也无需处理

                         设计原因:运行异常,原本就不能发生,如果发生了需要停止程序,修改代码

    5.方法重写时异常的处理

    1.父类的方法,如果抛出异常,子类重写父类的方法,可以不抛出异常,但是子类要是抛出异常,不能大于父类的异常,指继承关系,平级不行。

    和父类相同,或者父类的子类异常

    2.父类方法没有抛出异常,子类重写之后,也不能抛出异常。如果子类调用的方法抛出异常,子类需要使用try catch对异常进行处理

    相关文章

      网友评论

          本文标题:异常

          本文链接:https://www.haomeiwen.com/subject/spuckqtx.html