深入理解Java虚拟机——异常处理指令

x33g5p2x  于2022-03-20 转载在 Java  
字(0.5k)|赞(0)|评价(0)|浏览(285)

一、异常处理指令的概述

  • 在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文件

相关文章

微信公众号

最新文章

更多