10_java异常
异常体系
Throwable
|--Error 严重通过描述,一般不编写针对性代码进行处理。
|--Exception 非严重描述,可以使用针对性的代码进行处理。
|--RuntimeException 特殊异常
|--如果在函数内抛出,函数上可以不用声明,编译一样通过。
|--如果在函数上声明,调用者可以不用处理,编译一样通过。
|--如果在函数上声明,调用者可以不用处理,编译一样通过。
throw (抛出); 使用在函数内;定义异常对象。
throws(抛出); 使用在函数上;定义异常类,可以定义多个,用逗号隔开。
异常分两种
编译时被检测
运行时异常 (编译时不被检测 RuntimeException以及子类)
编译时被检测
运行时异常 (编译时不被检测 RuntimeException以及子类)
异常处理语句
try{
需要被检测的代码;
}
catch(异常类 变量)
{
处理异常的代码;
}
finally
{
一定会执行的语句;
}
多异常处理
1,声明异常时,建议声明更具体的异常,这样处理的更具体。
2,声明几个异常,就对应几个catch块。
3,如果多个catch块出现继承关系,父类异常catch块要放在最下面。
2,声明几个异常,就对应几个catch块。
3,如果多个catch块出现继承关系,父类异常catch块要放在最下面。
自定义异常
继承Exception或RuntimeException
1.让该自定义异常具备可抛性
2.让该类具备操作异常的共性方法
继承Exception或RuntimeException
1.让该自定义异常具备可抛性
2.让该类具备操作异常的共性方法
继承Exception原因:异常体系有一个特点,因为异常类和异常对象都要被抛出。
它们都具有可抛性,可抛性是Throwable类这个体系中独有的特点。
只有体系中的类和对象,才可以被throws和throw操作。
它们都具有可抛性,可抛性是Throwable类这个体系中独有的特点。
只有体系中的类和对象,才可以被throws和throw操作。
自定义异常信息
父类中已经定义获取异常信息的功能。
子类只要在构造时,将异常信息传给父类,通过super语句。
就可以直接通过getMessage方法获取自定义的异常信息。
父类中已经定义获取异常信息的功能。
子类只要在构造时,将异常信息传给父类,通过super语句。
就可以直接通过getMessage方法获取自定义的异常信息。
1.子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类。
2.父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集。
3.父类或者接口的方法中没有抛出异常,那么子类在覆盖方法时,也不可以抛出异常
子类方法发生了异常,必须在内部进行处理(try处理),绝对不能抛出。
2.父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集。
3.父类或者接口的方法中没有抛出异常,那么子类在覆盖方法时,也不可以抛出异常
子类方法发生了异常,必须在内部进行处理(try处理),绝对不能抛出。