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

新数据结构(9)——Java异常体系

异常的种类

程序本身通常无法主动捕获并处理错误(Error),因为这些错误通常表示系统级的严重问题,但程序可以捕获并处理异常(Excrption),而Error则被视为一种程序无法或不应尝试恢复的异常类型。

Error

Error是指由Java虚拟机(JVM)产生和抛出的严重错误,这类错误通常是程序无法预见也无法通过常规手段处理的,因为它们往往涉及到系统级的资源耗尽、JVM内部错误等致命问题。

如下图,这是一个Error的例子——堆栈溢出错误(StackOverflowError)以及线程死亡(ThreadDeath)。这些错误通常发生在尝试创建无限循环或在单个方法中创建过多的局部变量时,它们是由于JVM无法处理内存分配请求而产生的。

Excrption

Exception是指程序在运行过程中可能遇到的、且程序本身有能力通过适当的异常处理机制来处理的异常。这种异常主要分为两大类:运行时异常(RuntimeException及其子类)和非运行时异常(即受检异常,checked exceptions)。在编写程序时,开发者应当尽可能预见并妥善处理这些可能的异常,以提高程序的健壮性和用户体验。

从Java程序语法的角度来看,受检异常(也被称为非运行时异常或checked exceptions)是必须被显式处理的异常类型。如果在方法签名中声明了抛出受检异常,或者在方法体内产生了受检异常而没有通过try-catch语句进行捕获,或者没有通过throws关键字在方法签名中声明继续向上层调用者抛出,那么程序将无法成功编译通过。

非受检异常(也被称为运行时异常或RuntimeException及其子类)通常是由程序中的逻辑错误或不当操作引起的。为了避免这些异常的发生,程序开发者应该从逻辑设计的角度出发,尽可能预见并纠正可能导致这类异常的因素,以确保程序的正确性和稳定性。

如下图,这个异常是 Java 编程语言中的一个常见运行时异常,它表明程序试图访问数组中不存在的索引位置,异常信息指出索引5超出了数组的有效范围。于 ArrayIndexOutOfBoundsException 是在运行时抛出的,且不需要在编译时进行强制处理,因此它被视为非受检异常。

异常的处理

http://www.lryc.cn/news/537827.html

相关文章:

  • 每日十题八股-补充材料-2025年2月15日
  • 使用 Python 爬虫获取微店快递费用 item_fee API 接口数据
  • 通过用户名和密码登录服务器有哪些方法
  • sort快排
  • 用xml配置spring, bean标签有哪些属性?
  • 纪念日倒数日项目的实现-【纪念时刻-时光集】
  • 无人机不等同轴旋翼架构设计应用探究
  • 1-8 gitee码云的注册与使用
  • 嵌入式硬件篇---OpenMV的硬件流和软件流
  • Word 里面嵌入DeepSeek
  • 聊聊 IP 地址和端口号的区别
  • rust学习一、入门之搭建简单开发环境
  • 浅聊MQ之Kafka与RabbitMQ简用
  • 【原创】解决vue-element-plus-admin无法实现下拉框动态控制表单功能,动态显隐输入框
  • SpringBoot开发——初步了解SpringBoot
  • 双轴伺服电机驱动控制器AGV、AMR专用双伺服电机驱动控制器解决方案
  • 【VB语言】EXCEL中VB宏的应用
  • Ubuntu添加桌面快捷方式
  • 10G EPON光模块
  • Elasticsearch+Logstash+Kibana可视化集群部署
  • 基于CanMV IDE 开发软件对K210图像识别模块的开发
  • win11系统 Docker Desktop提示Docker Engine stopped解决全过程记录
  • 工作室如何实现一机一IP
  • WEB安全--SQL注入--二次注入
  • 构建现代微服务安全体系:Spring Security、JWT 与 Spring Cloud Gateway 实践
  • Spring Boot 动态数据源实操指南
  • HBase高级技巧:解锁更强大的数据处理能力
  • 【进阶】JVM篇
  • DeepSeek官方推荐的AI集成系统
  • 【动态规划篇】:当回文串遇上动态规划--如何用二维DP“折叠”字符串?