标签:jpg nbsp 虚拟机 dem 整数 sof family 实现 public
在Java程序中显式抛出异常的操作(throw语句)都由athrow指令来实现,除了用throw语句显式抛出异常情况之外,Java虚拟机规范还规定了许多运行时异常会在其他Java虚拟机指令检测到异常状况时自动抛出。例如,在前面介绍的整数运算中,当除数为零时,虚拟机会在idiv或ldiv指令中抛出ArithmeticException异常。
而在Java虚拟机中,处理异常(catch语句)不是由字节码指令来实现的(很久之前曾经使用jsr和ret指令来实现,现在已经不用了),而是采用异常表来完成的。案例一:
public class Demo5 {
public static void main(String[] args) {
throw new RuntimeException("我是异常")?
}
}
案例二:
public class Demo5 {
public static void main(String[] args) {
int a = 1 / 0?
}
}
是由idiv抛出来的。
public class Demo5 {
public static void main(String[] args) {
try {
int a = 1 / 0?
} catch (Exception e) { e.printStackTrace()?
}
}
}
标签:jpg nbsp 虚拟机 dem 整数 sof family 实现 public
原文地址:https://www.cnblogs.com/qingruihappy/p/9691460.html