
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
java编程开发是大多数软件开发程序员都在学习和使用的一种编程开发语言,下面我们就通过案例分析来了解一下,java编程虚拟机异常处理方法。
一、JVM是如何捕获异常的?
1、编译而成的字节码中,每个方法都附带一个异常表。
2、异常表中每一个条目代表一个异常处理器
3、触发异常时,JVM会遍历异常表,比较触发异常的字节码的索引值是否在异常处理器的from指针到to指针的范围内。
4、范围匹配后,会去比较异常类型和异常处理器中的type是否相同。
5、类型匹配后,会跳转到target指针所指向的字节码(catch代码块的开始位置)
6、如果没有匹配到异常处理器,会弹出当前方法对应的Java栈帧,并对调用者重复上述操作。
二、什么是异常表?
1.每个方法都附带一个异常表
2.异常表中每一个条目,就是一个异常处理器
三、什么是异常处理器?其组成部分有哪些?
1、异常处理器由from指针、to指针、target指针,以及所捕获的异常类型所构成(type)。
2、这些指针的数值就是字节码的索引(bytecodeindex,bci),可以直接去定位字节码。
3、from指针和to指针,标识了该异常处理器所监控的返回
4、target指针,指向异常处理器的起始位置。如catch代码块的起始位置
5、type:捕获的异常类型,如Exception
四、如果在方法的异常表中没有匹配到异常处理器,会怎么样?
1、会弹出当前方法对应的Java栈帧
2、在调用者上重复异常匹配的流程。
3、坏情况下,JVM需要编译当前线程Java栈上所有方法的异常表
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。