异常

2018-12-17  本文已影响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对异常进行处理

上一篇 下一篇

猜你喜欢

热点阅读