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对异常进行处理
网友评论