1.异常的概念:程序运行有可能出现问题,然后把问题进行对象的封装。
2.体系:Throwable:异常分为两种:一种是严重的情况,用Error表示,一般不作处理,它的子类都以error作为后缀;另一种是不严重的异常,它用Exception表示,它的子类都以Exception作为后缀,其中有一个比较特殊的子类,就是RuntimelException 运行时异常,抛出此异常,不用在函数体上声明,编译时不做处理;如果声明了,调用者可以处理,也可以不作处理,程序停止运行,需要修改传入的参数;
3、区别两个关键字的使用:throw和throws:
throw:是定义在函数体内,用来抛出对象;而throws定义在函数体上,用来抛出异常类名。
4.异常按照处理过程中分类为两种:
(1)、编译时异常:抛出异常对象时,要声明抛出异常,如果不声明;编译出错,如果声明了,调用者,就要做出相应的处理;要么抛出,要么try,否则出错;
(2)、运行时异常:就是编译时不做处理,然后运行时,程序停止运行。RuntimeException,这时就要修改传递进来的参数。
5、异常处理的几种格式:
6.异常在子父类中的体现:如果子类重写了父类中的方法,而父类中的方法抛出异常,那么子类要么抛出父类异常,要么抛出子类异常,总之,要让父类异常能够处理。
7.如果父类方法抛出多个异常,那么子类在重写父类中的方法时,只能抛出父类异常的子类。
8,如果父类或者接口中的方法没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常,如果子类中确实出现了异常,那么就必须处理,绝对不能抛出。
下面通过一个代码来体现一下:
class ExceptionDemo6
{
}
//定义一个异常
class NoValueException extends RuntimeException
{
}
//定义一个接口,里面有一个方法,获取面积
interface Cir
{
}
//定义一个圆
class Circle implements Cir
{
}