当前位置: 首页 > 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 是在运行时抛出的,且不需要在编译时进行强制处理,因此它被视为非受检异常。

异常的处理

相关文章:

  • AI编程01-生成前/后端接口对表-豆包(或Deepseek+WPS的AI
  • 【Vue3 入门到实战】15. 组件间通信
  • CEF132 编译指南 Linux 篇 - 构建编译环境:工具链配置(二)
  • DatePicker 实现:日期范围截止时间为23:59:59
  • 蓝桥杯备赛笔记(二)
  • 番外04:前端面试八股文-HTML
  • QML 快捷键与Shortcut的使用
  • 一个简单的Windows TCP服务器实现
  • windows系统 从 Hugging Face网站上使用 huggingface-cli 命令下载AI大模型到本地
  • 在npm上传属于自己的包
  • ARM64 Trust Firmware [一]
  • 【Copilot】Redis SCAN SSCAN
  • Linux探秘坊-------4.进度条小程序
  • DeepSeek 突然来袭,AI 大模型变革的危机与转机藏在哪?
  • ES6 Proxy 用法总结以及 Object.defineProperty用法区别
  • 【redis】数据类型之bitmaps
  • 【H5自适应】高端科技类pbootcms网站模板 – 三级栏目、下载与招聘功能支持
  • Python自动化办公之Excel拆分
  • 真正通俗易懂的Langchain入门学习(六)
  • HDFS核对迁移的历史数据是否正确
  • 做影视网站需要境外/百度拍照搜题
  • 公司的网络规划与设计/网站怎么优化推荐
  • 做一个营销型网站/营销方案怎么写模板
  • 深圳市移动端网站建设/游戏推广公司靠谱吗
  • 苏州建设建设信息网站/网站推广基本方法是
  • 怎样加快网站收录/网络服务器