异类的由来:
1问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述,并封装成对象
2其实就是java对不正常情况进行描述后的对象体现
对问题的划分 一种严重的问题
一种非严重的问题
对严重:Error类 描述:一般不编写针对性的代码
对非严重:Exception类描述:可以使用针对性的代码
对多异常的处理: 不能同时发生
1声明异常时,可以建立声明更为具体的异常。这一趟处理的可以更具体(不要定义多余的catch块)
如果多个catch块中的异常出现继承关系
父类异常catch放在最下面
建立在进行catch处理时,catch中一定要定义具体处理方式:
不要简单定义一句
也不要简单的就书写一条输出语句
自定义异常
当在函数内部出现了throw抛出异常对象
那么就必须要给对于那个对应的处理动作
要么在内部try catch处理
要么在函数上声明让调用者处理
一般情况在函数内出现异常,函数上需要声明
自定义异常:必须是自定义继承Exception
继承Exception的原因
异常体系由一个特点:因为异常类和异常对象都被抛出
他们都具备可以抛性,这个可抛性是Throwable,这个体系中独有特点
这有这个体系中的;类和对象才可以被throws和throw操作
throw和throws区别
throws使用在函数上
throw使用在函数
throws后面跟的异常类,可以跟多个用逗号分开
throw后跟的是异常对象
Exception中有一个特殊的子类异常
RuntimeException运行时异常
如果在函数内容【抛出异常,函数上可以不用声明,编译一样通过
如果在函数上声明了该异常,调用者可以不用进行处理,编译一样通过。
之所以不用在函数声明,是因为不需要让调用者处理。
当该异常发生,虚妄程序停止,因为在运行时,出现了无法继续运算的情况希望停止程序后,对代码进行修改。
自定义异常时,如果该异常的发生,无法在继续进行运算,就让自定义异常继承
对于异常分两种
1编译时被检测的异常
2编译时不被检测的异常
注意:catch是用于处理异常,如果没有catch就代表异常没有被处理过,如果该异常是检测时异常,那么必须声明。
异常在子父类覆盖中的体现
1子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类
2如果父类方法抛出多个异类,那么子类在覆盖,该方法时,只能抛出父类异常的子集
3如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常,如果子类方法发生了异常,就必须要进行try处理,绝对不能抛 |
|