java异常处理流程

异常处理流程.png

1.当程序在运行的过程中出现了异常,会由JVM自动根据异常的类型实例化一个与之类型匹配的异常类。
2.产生异常对象后会判断当前的语句是否存在异常处理,如果现在没有异常处理,就交给JVM进行默认的异常处理,处理方式:输出异常信息,而后结束程序的调用。
3.如果此时存在异常的捕获操作,那么会先有try语句来捕获产生的异常类实例化对象,再与try'语句的每一个catch进行对比,如果有符合的捕获类型,则使用当前catch的语句来进行异常的处理,如果不匹配,则往下继续匹配其他catch。
4.不管最后异常处理是否能够匹配,都要向后执行,如果此时程序中存在finally语句,就先执行finally中的代码。执行完finally语句后需要根据之前的catch匹配结果来决定如何执行,如果之前已经成功捕获异常,就集继续执行finally之后的代码,如果之前没有成功的捕获异常,九江此异常交给JVM进行默认处理。
整个过程就像方法传递参数一样,只是根据catch后面的参数类型进行匹配。既然对象捕获只是一个异常类对象的传递过程,那么根据java中对象自动向上转型,所以异常类对象都可以向父类对象转型,也证明了所有异常类对象都可以使用Exception来接收。
为什么不选择Throwable?
如果该异常只有Exception类型,如果使用Throwable接受,还会表示可以处理Error的错误,二用户是处理不了Error错误的(jvm处理),所以开发中用户可以处理的异常都要求以Exception为主。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 八、深入理解java异常处理机制 引子try…catch…finally恐怕是大家再熟悉不过的语句了, 你的答案是...
    壹点零阅读 1,650评论 0 0
  • 初识异常(Exception) 比如我们在取数组里面的某个值得时候,经常会出现定义的取值范围超过了数组的大小,那么...
    iDaniel阅读 1,887评论 1 2
  • 2.JAVA异常 异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程...
    青城楼主阅读 571评论 0 0
  • 1、异常 1.1、异常介绍 异常:不正常。生活中的异常:例:在上课时,突然间停电,造成上课终止。 处理:等待来...
    Villain丶Cc阅读 1,019评论 0 5
  • 亲爱的葛先生,生日快乐。 恍恍惚惚,我们竟已走过两个春秋。在这六百多个日夜里有过开心与悲伤,回首来看快乐总是要多一...
    林小仙仙仙阅读 8,474评论 3 2