java异常处理流程

来源:互联网 发布:hdr 电视 推荐 知乎 编辑:程序博客网 时间:2024/06/14 18:25

Error:指的是JVM错误,即,此程序还没有执行,如果没有执行用户无法处理这个异常。

Exception:指的是程序运行中产生的异常,用户可以处理,也就是所谓的异常处理指的是所有Exception以及它的所有子类。

  *java中的异常处理流程:

1)当程序在运行的过程之中出现异常之后,JVM会自动根据异常的类型实例化一个与之类型匹配的异常对象

(此时用户不用去关心new,有系统自动负责处理)

2)产生异常对象之后会判断当前的语句是否存在有异常处理,如果现在没有异常处理,

那就交给JVM进行默认的异常处理,处理的方式:输出异常信息,而后结束程序的调用,

3)如果此时存在异常的捕获操作,那么会由try语句来捕获产生的异常实例化对象,而后与try语句后的每一个catch语句进行比较,如果有符合的异常处理,即使用当前catch语句进行异常处理,如果不匹配则匹配剩下的catch语句

4)不管最后异常处理是否能够匹配,那么都要向后执行,如果此时程序中存在finally语句,那么就先执行finally中的代码,但是执行完毕后需要根据之前的catch匹配结果来决定如何执行,如果之前已经成功的捕获类异常,那么就继续执行finally之后的代码,如果之前没有成功的捕获异常,那么就将此异常交给JVM进行默认处理(输出异常信息,

结束程序执行)

  处理提示:

     *:在整个捕获异常的时候,要将捕获范围大的异常放在捕获范围小的异常之后,否则出现编译错误。

     *:虽然直接 捕获Exception比较方便,但是在处理大型项目时建议写出具体的异常。

throw与throws的区别

Throws:在方法的声明上使用,表示此方法在调用时必须处理异常。

Throw:指的是在方法之中人为抛出一个异常类对象(这个异常对象可能是自己实例化或者是抛出已存在的)

1 0