深入理解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虚拟机——异常处理指令的主要内容,如果未能解决你的问题,请参考以下文章

Jvm(49),指令集----异常处理指令

《深入理解Java虚拟机》——Java内存区域与内存溢出异常

深入理解java虚拟机

深入理解Java虚拟机 - 学习笔记 1

深入理解Java虚拟机二之Java内存区域与内存溢出异常

《深入理解Java虚拟机》- JVM如何进行异常处理