新数据结构(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.rhkb.cn/news/19461.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习笔记——循环神经网络之LSTM

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍面试过程中可能遇到的循环神经网络LSTM知识点。 文章目录 文本特征提取的方法1. 基础方法1.1 词袋模型(Bag of Words, BOW)工作…

传统混合专家模型MoE架构详解以及python示例(DeepSeek-V3之基础)

我们已经了解到DeepSeek-V3的框架结构基于三大核心技术构建:多头潜在注意力(MLA)、DeepSeekMoE架构和多token预测(MTP)。而DeepSeekMoE架构的底层模型采用了混合专家模型(Mixture of Experts,MoE)架构。所以我们先了解一下传统混合专家模型MoE架构。 一、传统混合专家模…

【深度学习】计算机视觉(CV)-目标检测-Faster R-CNN —— 高精度目标检测算法

1.什么是 Faster R-CNN? Faster R-CNN(Region-based Convolutional Neural Network) 是 目标检测(Object Detection) 领域的一种 双阶段(Two-Stage) 深度学习方法,由 Ross Girshick…

实现pytorch注意力机制-one demo

主要组成部分: 1. 定义注意力层: 定义一个Attention_Layer类,接受两个参数:hidden_dim(隐藏层维度)和is_bi_rnn(是否是双向RNN)。 2. 定义前向传播: 定义了注意力层的…

SAP-ABAP:SAP的Screen Layout Designer屏幕布局设计器详解及示例

在SAP中,Screen Layout Designer(屏幕布局设计器)是用于设计和维护屏幕(Dynpro)布局的工具。通过Screen Layout Designer,您可以创建和修改屏幕元素(如输入字段、按钮、文本、表格控件等&#x…

windows11+ubuntu20.04双系统下卸载ubuntu并重新安装

windows11ubuntu20.04双系统下卸载ubuntu并重新安装 背景:昨晚我电脑ubuntu20.04系统突然崩溃了,无奈只能重装系统了(好在没有什么重要数据)。刚好趁着这次换个ubuntu24.04系统玩一下,学习一下ROS2。 现系统&#xff…

SpringBoot速成(11)更新用户头像,密码P13-P14

更新头像: 1.代码展示: 1.RequestParam 是 Spring MVC 中非常实用的注解,用于从 HTTP 请求中提取参数并绑定到控制器方法的参数上。 2.PatchMapping 是 Spring MVC 中的一个注解,用于处理 HTTP 的 PATCH 请求。PATCH 请求通常用于对资源的部…

DeepSeek R1 与 OpenAI O1:机器学习模型的巅峰对决

我的个人主页 我的专栏:人工智能领域、java-数据结构、Javase、C语言,希望能帮助到大家!!!点赞👍收藏❤ 一、引言 在机器学习的广袤天地中,大型语言模型(LLM)无疑是最…

Datawhale 数学建模导论二 笔记1

第6章 数据处理与拟合模型 本章主要涉及到的知识点有: 数据与大数据Python数据预处理常见的统计分析模型随机过程与随机模拟数据可视化 本章内容涉及到基础的概率论与数理统计理论,如果对这部分内容不熟悉,可以参考相关概率论与数理统计的…

【个人开发】deepspeed+Llama-factory 本地数据多卡Lora微调

文章目录 1.背景2.微调方式2.1 关键环境版本信息2.2 步骤2.2.1 下载llama-factory2.2.2 准备数据集2.2.3 微调模式2.2.3.1 zero-3微调2.2.3.2 zero-2微调2.2.3.3 单卡Lora微调 2.3 踩坑经验2.3.1 问题一:ValueError: Undefined dataset xxxx in dataset_info.json.2…

STM32 如何使用DMA和获取ADC

目录 背景 ‌摇杆的原理 程序 端口配置 ADC 配置 DMA配置 背景 DMA是一种计算机技术,允许某些硬件子系统直接访问系统内存,而不需要中央处理器(CPU)的介入,从而减轻CPU的负担。我们可以通过DMA来从外设&#xf…

Jvascript网页设计案例:通过js实现一款密码强度检测,适用于等保测评整改

本文目录 前言功能预览样式特点总结:1. 整体视觉风格2. 密码输入框设计3. 强度指示条4. 结果文本与原因说明 功能特点总结:1. 密码强度检测2. 实时反馈机制3. 详细原因说明4. 视觉提示5. 交互体验优化 密码强度检测逻辑Html代码Javascript代码 前言 能满…

Mybatis高级(动态SQL)

目录 一、动态SQL 1.1 数据准备&#xff1a; 1.2 <if>标签 1.3<trim> 标签 1.4<where>标签 1.5<set>标签 1.6 <foreach>标签 1.7<include> 标签 一、动态SQL 动态SQL是Mybatis的强⼤特性之⼀&#xff0c;能够完成不同条件下不同…

mac 意外退出移动硬盘后再次插入移动硬盘不显示怎么办

第一步&#xff1a;sudo ps aux | grep fsck 打开mac控制台输入如下指令&#xff0c;我们看到会出现两个进程&#xff0c;看进程是root的这个 sudo ps aux|grep fsck 第二步&#xff1a;杀死进程 在第一步基础上我们知道不显示u盘的进程是&#xff1a;62319&#xff0c;我们…

(2025)深度分析DeepSeek-R1开源的6种蒸馏模型之间的逻辑处理和编写代码能力区别以及配置要求,并与ChatGPT进行对比(附本地部署教程)

(2025)通过Ollama光速部署本地DeepSeek-R1模型(支持Windows10/11)_deepseek猫娘咒语-CSDN博客文章浏览阅读1k次&#xff0c;点赞19次&#xff0c;收藏9次。通过Ollama光速部署本地DeepSeek-R1(支持Windows10/11)_deepseek猫娘咒语https://blog.csdn.net/m0_70478643/article/de…

qt + opengl 给立方体增加阴影

在前几篇文章里面学会了通过opengl实现一个立方体&#xff0c;那么这篇我们来学习光照。 风氏光照模型的主要结构由3个分量组成&#xff1a;环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照。下面这张图展示了这些光照分量看起来的样子&#xff1a; 1 环境光照(Ambient …

机器学习-监督学习

1. 定义与原理 监督学习依赖于标记数据&#xff08;即每个输入样本都对应已知的输出标签&#xff09;&#xff0c;模型通过分析这些数据中的规律&#xff0c;建立从输入特征到目标标签的映射函数。例如&#xff0c;在垃圾邮件检测中&#xff0c;输入是邮件内容&#xff0c;输出…

使用grafana v11 建立k线(蜡烛图)仪表板

先看实现的结果 沪铜主力合约 2025-02-12 的1分钟k线图 功能介绍: 左上角支持切换主力合约,日期,实现动态加载数据. 项目背景: 我想通过前端展示期货指定品种某1天的1分钟k线,类似tqsdk 的web_gui 生成图形化界面— TianQin Python SDK 3.7.8 文档 项目架构: 后端: fastap…

我们来学HTTP/TCP -- 另辟蹊径从响应入手

从响应入手 题记响应结语 题记 很多“废话”&#xff0c;在很多文章中出奇的一致那种感觉是&#xff0c;说了好像又没说一样&#xff0c;可以称之为“电子技术垃圾”当然&#xff0c;是从个人主观的感受&#xff0c;这该死的回旋镖估计也会打在自己头上但咱也学学哪吒精神“我…

Golang官方编程指南

文章目录 1. Golang 官方编程指南2. Golang 标准库API文档 1. Golang 官方编程指南 Golang 官方网站&#xff1a;https://go.dev/ 点击下一步&#xff0c;查看官方手册怎么用 https://tour.go-zh.org/welcome/1 手册中的内容比较简单 go语言是以包的形式化管理函数的 搜索包名…