设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

不懂JVM,怎么当架构师,一文带你了解JVM(6)

发布时间:2020-01-10 18:47 所属栏目:118 来源:站长网
导读:常量池中包含了下面的这些类型: 异常表 异常表存储了每个异常处理器的信息: 起始点 终止点 处理代码的PC偏移量 被捕获的异常类的常量池索引 如果一个方法定义了try-catch或try-finally异常处理器,那么一个异常表

常量池中包含了下面的这些类型:

不懂JVM,怎么当架构师,一文带你了解JVM,成就你的架构师之路

异常表

异常表存储了每个异常处理器的信息:

起始点

终止点

处理代码的PC偏移量

被捕获的异常类的常量池索引

如果一个方法定义了try-catch或try-finally异常处理器,那么一个异常表将会被创建。它包含了每个异常处理器的信息或者finally块以及正在被处理的异常类型跟处理器代码的位置。

当一个异常被抛出,JVM会为当前方法寻找一个匹配的处理器。如果没有找到,那么该方法最终会唐突地出栈当前stackframe而异常会被重新抛出到调用链(新的frame)。如果在所有的frame都出栈之前还是没有找到异常处理器,那么当前线程将会被终止。当然这也可能会导致JVM被终止,如果异常被抛出到最后一个非后台线程的话,比如该线程就是主线程。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读