深入理解Java虚拟机——异常处理指令
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解Java虚拟机——异常处理指令相关的知识,希望对你有一定的参考价值。
目录
一、异常处理指令的概述
- 在Java程序中显示抛出异常的操作(throw语句)都由athrow指令来实现,除了用throw语句显示抛出异常情况之外,Java虚拟机规范还规定了许多运行时异常会在其他Java虚拟机指令检测到异常状况时自动抛出。
- 例如:当除数为零时,虚拟机会在idiv或Idiv指令中抛出ArithmeticException。
- 在Java虚拟机中,处理异常(catch语句)不是由字节码指令来实现的(很久之前曾经使用jsr和ret指令来实现,现在已经不用了),而是采用异常表来完成的。
二、异常处理指令(示例1)
-
代码
public class Test1 public static void main(String []args) throw new RuntimeException("exception");
-
执行javac命令编译成.class文件
-
执行javap命令查看字节码指令
三、异常处理指令(示例2)
-
代码
public class Test1 public static void main(String []args) int result= 1/0;
-
执行javac命令编译成.class文件
-
执行javap命令查看字节码指令
-
执行java命令运行Test.java文件
以上是关于深入理解Java虚拟机——异常处理指令的主要内容,如果未能解决你的问题,请参考以下文章