当前位置: 首页 > news >正文

Jvm是如何处理异常的

异常抛出

当Java程序运行时遇到无法处理的情况时,会抛出一个异常(比如在一个方法中如果发生异常),这时会创建一个异常对象,并转交给JVM,该异常对象包含异常名称,异常描述以及异常发生时应用程序的状态。创建异常对象并转交给JVM的过程称为抛出异常。

异常捕捉

当JVM检测到异常被抛出时,它会查看当前执行线程的调用栈(call stack)。会顺着调用栈从当前方法开始,逐级向上查找是否有可以处理该异常的代码块(catch块)。JVM使用异常表中的信息来确定哪些catch块能够处理这个异常。它会从上至下匹配异常处理器,直到找到第一个能够处理该异常的catch块。

异常表
在编译Java程序时,编译器会为每个方法生成一个异常表。这个异常表包含了方法内部可能抛出的异常类型以及对应的异常处理器(catch块)的位置信息。异常表中的每一个条目都包含了从指针(from pointer)、到指针(to pointer)、目标指针(target pointer)以及所捕获的异常类型。这些指针的值是字节码索引(bytecode index, bci),用于定位字节码中异常处理器监控的范围。

异常处理

一旦找到可以处理异常的catch块,JVM会将异常对象传递给该catch块,并执行其中的异常处理代码。如果JVM没有找到可以处理该异常的catch块,它会将该异常转交给默认的异常处理器(通常是JVM的一部分)。默认异常处理器会打印出异常信息并终止应用程序的执行。

f

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【ESP32接入国产大模型之豆包】
  • 2024年自动驾驶SLAM面试题及答案(更新中)
  • docker文件挂载和宿主主机文件的关系
  • 【IoTDB 线上小课 05】时序数据文件 TsFile 三问“解密”!
  • 2024在线PHP加密网站源码
  • 代码随想录算法训练营第二十天|二叉树 part7
  • 香薰学习笔记
  • 云计算的三种服务模式
  • c#,NumSharp 中的 NDArray属性说明
  • BUUCTF逆向wp [MRCTF2020]Xor
  • Web开发:一个可拖拽的模态框(HTML、CSS、JavaScript)
  • 代码随想录算法训练营第47天
  • wkhtmltopdf 工具安装与使用
  • excel系列(三) - 利用 easyexcel 快速实现 excel 文件导入导出
  • https和http有哪些区别?
  • Angularjs之国际化
  • Bytom交易说明(账户管理模式)
  • JavaScript新鲜事·第5期
  • java中的hashCode
  • Laravel Mix运行时关于es2015报错解决方案
  • Linux下的乱码问题
  • Tornado学习笔记(1)
  • underscore源码剖析之整体架构
  • vue-router 实现分析
  • vue--为什么data属性必须是一个函数
  • zookeeper系列(七)实战分布式命名服务
  • 初探 Vue 生命周期和钩子函数
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 软件开发学习的5大技巧,你知道吗?
  • 使用putty远程连接linux
  • 原生Ajax
  • 从如何停掉 Promise 链说起
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 昨天1024程序员节,我故意写了个死循环~
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • # Redis 入门到精通(一)数据类型(4)
  • # 飞书APP集成平台-数字化落地
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #stm32驱动外设模块总结w5500模块
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (16)Reactor的测试——响应式Spring的道法术器
  • (Charles)如何抓取手机http的报文
  • (Java)【深基9.例1】选举学生会
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • ******IT公司面试题汇总+优秀技术博客汇总
  • ***监测系统的构建(chkrootkit )
  • .form文件_一篇文章学会文件上传