一.异常(异常的概述和分类)
1、异常的概述: 就是Java程序在编译或者运行过程中出现的错误。
2、异常的继承体系 Throwable(Error, Exception )
二.异常的处理
1、JVM默认是如何处理异常的。
a: main函数收到这个问题时,有两种处理方式。
b:自己将该问题处理,然后继续运行。
c:自己没有针对的处理方式,只有交给调用jvm来处理。
e:并将该异常的名称,异常的信息.异常出现的位置打印在了控制台上,同时将程序停止运行。
2、a、积极处理
try {
// 有可能出现异常的代码
} catch( 异常类型 ) {
// 捕获异常后的代码
}
//catch能捕捉的异常,要么精确匹配,要么用父类型匹配
// 可以用多个catch捕获不同类型的异常
//多个catch块出现时,前边的异常类型不能比后者的宽泛,可以平级,也可以是其子类。
b、 消极处理
在方法的声明部分添加 throws 异常类型,说明方法在执行时有可能出现的异常, 将异常交给方法的调用者处理
main 的调用者是jvm,当异常传给jvm时,程序运行就结束了
三、.异常分为编译时异常与运行期异常,也称检查异常与未检查异常
1编译期异常和运行期异常的区别。
a:Java中的异常被分为两大类:编译时异常和运行时异常。
b:所有的RuntimeException类及其子类的实例还有Error被称为运行时异常,其他的异常就是编译时异常。
c: 编译时异常:程序会显示处理,不处理就会发生错误,无法通过编译。
d:运行时异常:无需显示处理,也可以和编译时异常一样处理。
四、异常的常见方法
1、Throwable的几个常见方法。
e.getMessage()//获取异常信息,返回字符串。
e.printStackTrace()// 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。
五、通过throws的方式处理异常
1、throws的方式处理异常a: 定义功能方法时,需要把出现的问题暴露出来让调用者去处理。
2、 那么就通过throws在方法上标识。
六.异常(throw的概述以及和throws的区别)
1、throw的概述
a、在功能方法内部出现某种情况,程序不能继续运行,需要进行跳转时,就用throw把异常对象抛出。
b、throws和throw的区别
2、throws
用在方法声明后面,跟的是异常类名,表示抛出异常,由该方法的调用者来处理。
3、throw
a、用在方法体内,跟的是异常对象名。
b.、只能抛出一个异常对象名。
七、finally关键字的特点
1、被finally控制的语句体一定会执行。
2、如果try catch 以及finally都出现了return语句, 以finally中的return为准;
如果try 有return, 但finally中对返回的变量做了修改, 不会影响return的结果。
八、异常的注意事项及如何使用异常处理
1、异常注意事项
a、子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。
b、如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子类,子类不能抛出父类没有的异常。
c:如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws。