JVM异常发生时的应对策略

开发 后端
JVM异常情况在Java中被称作Error(错误)或Exception(JVM异常),是Throwable类的子类,在程序中的原因运行时错,如对一个空指针的引用。程序使用了throw语句。

本文向大家描述一下当JVM异常发生时,Java虚拟机采取的几种措施,JVM异常情况在Java中被称作Error(错误)或Exception(JVM异常),是Throwable类的子类。

JVM异常捕捉的几种情况

JVM异常情况在Java中被称作Error(错误)或Exception(JVM异常),是Throwable类的子类,在程序中的原因运行时错,如对一个空指针的引用。程序使用了throw语句。

JVM异常捕捉

当JVM异常发生时,Java虚拟机采取如下措施:

1、检查与当前方法相联系的catch子句表。每个catch子句包含其有效指令范围,能够处理的JVM异常类型,以及处理JVM异常的代码块地址。

2、与JVM异常相匹配的catch子句应该符合下面的条件:造成JVM异常的指令在其指令范围之内,发生的JVM异常类型是其能处理的JVM异常类型的子类型。如果找到了匹配的catch子句,那么系统转移到指定的JVM异常处理块处执行;如果没有找到JVM异常处理块,重复寻找匹配的catch子句的过程,直到当前方法的所有嵌套的catch子句都被检查过。

3、由于虚拟机从***个匹配的catch子句处继续执行,所以catch子句表中的顺序是很重要的。因为Java代码是结构化的,因此总可以把某个方法的所有的JVM异常处理器都按序排列到一个表中,对任意可能的程序计数器的值,都可以用线性的顺序找到合适的JVM异常处理块,以处理在该程序计数器值下发生的JVM异常情况。

4、如果找不到匹配的catch子句,那么当前方法得到一个“未截获JVM异常”的结果并返回到当前方法的调用者,好像JVM异常刚刚在其调用者中发生一样。如果在调用者中仍然没有找到相应的JVM异常处理块,那么这种错误将被传播下去。如果错误被传播到最顶层,那么系统将调用一个缺省的JVM异常处理块。
 

【编辑推荐】

  1. JVM指令系统的组成及使用
  2. 解析JVM内存管理机制的几个概念
  3. JVM基础:解析JVM分代垃圾回收策略
  4. JVM for Linux JIT诊断技术简介
  5. 巧解IBM JVM for Linux onPOWER性能调优

 

 

责任编辑:佚名 来源: hudong.com
相关推荐

2017-04-27 20:45:48

爬虫反爬虫

2010-11-29 10:11:05

Sybase数据库死锁

2013-12-16 11:18:42

多核

2021-12-31 16:10:46

稳定币数字货币货币

2024-01-29 10:34:37

Java编程

2012-10-09 15:50:19

IPv6

2021-02-26 10:51:18

云安全云计算网络安全

2011-05-25 19:53:45

SEO

2024-07-29 00:01:00

RabbitMQ消息堆积

2011-11-29 13:45:36

思科三网融合

2011-05-24 17:47:40

2014-01-16 09:56:26

IPv6商用部署策略

2011-05-24 10:02:47

2014-06-04 17:35:12

2024-05-22 08:00:00

2024-11-11 14:23:11

2013-11-19 15:48:34

电商安全网购安全

2013-07-26 09:41:15

云计算降价云服务云计算应用

2020-03-31 10:37:14

物联网安全物联网IOT

2024-07-01 09:00:16

点赞
收藏

51CTO技术栈公众号