0
点赞
收藏
分享

微信扫一扫

windows11安装msi文件的方法

Gaaidou 2023-09-02 阅读 53
java

1.示例代码

	@Test
    public void someTest() {
        String s = "111";
        try {
            s = "222";
            int i = 1/0;
        } catch (Exception e){
            e.printStackTrace();
            System.out.println(s);
        }
        System.out.println(s);
    }

2.示例代码对应的字节码

 0 ldc #2 <111>
 2 astore_1
 3 ldc #3 <222>
 5 astore_1
 6 iconst_1
 7 iconst_0
 8 idiv
 9 istore_2
10 goto 25 (+15)
13 astore_2
14 aload_2
15 invokevirtual #5 <java/lang/Exception.printStackTrace : ()V>
18 getstatic #6 <java/lang/System.out : Ljava/io/PrintStream;>
21 aload_1
22 invokevirtual #7 <java/io/PrintStream.println : (Ljava/lang/String;)V>
25 getstatic #6 <java/lang/System.out : Ljava/io/PrintStream;>
28 aload_1
29 invokevirtual #7 <java/io/PrintStream.println : (Ljava/lang/String;)V>
32 return

异常表

3.说明

代码一般看得懂,从字节码说明,字节码和代码一起看,看的更清晰。
①0、2声明变量s。
②3到10是try部分代码,如果这段代码之间有Exception的异常,就从发生异常的位置跳到13。注意:跳之前的代码也是执行了的。
③如果没发生异常,在10的位置就直接跳到25,并继续执行后面的字节码。
④如果发生了异常,就跳到13,并继续执行13后面的字节码。

4.执行结果

异常打印的栈内容省略了。

java.lang.ArithmeticException: / by zero
222
222
举报

相关推荐

0 条评论