什么是已检查异常和未检查异常?

在Java中,已检查异常(Checked Exceptions)和未检查异常(Unchecked Exceptions)是两种主要的异常类型。

  1. 已检查异常(Checked Exceptions):这种类型的异常在编译期就会被检查(或称为捕获)。如果在方法中可能会抛出此类异常,那么该方法必须显式地声明这种可能(使用“throws”关键字),或者这个异常就必须被捕获并处理(使用“try-catch”块)。如果没有处理,那么编译器就会报错。这主要是对那些可预防且可以由程序来恢复的问题的一种提示,比如文件找不到异常(FileNotFoundException),网络连接失败等。
void readFile() throws FileNotFoundException {File file = new File("nonExistantFile.txt");FileReader reader = new FileReader(file);
}

在这个例子中,我们尝试打开并读取一个不存在的文件,这可能会抛出 FileNotFoundException,这是一个已检查异常。

  1. 未检查异常(Unchecked Exceptions):这种类型的异常在编译期不会被检查。它们通常表示编程错误,如类的类型转换错误,数组下标越界等。这些异常都是RuntimeException类的子类,不需要显示捕获,通常在程序运行时才会被抛出。
void divideByZero() {int x = 1 / 0;
}

在这个例子中,我们尝试做一个除零操作,这将抛出 ArithmeticException ,这是一个未检查异常。

未检查异常(Unchecked Exceptions):

        通常也被称为运行时异常(Runtime Exceptions),是在程序运行过程中才会被抛出的。这类异常并不需要在方法签名中显式声明,也不需要强制进行捕获与处理。

        这些异常通常代表了编程错误,比如访问了空的对象引用(会导致NullPointerException)或者是数组下标越界(会导致ArrayIndexOutOfBoundsException),还可能是尝试进行不合法的类型转换(会导致ClassCastException),甚至包括算数错误,如除以0(会导致ArithmeticException)。

举个简单的例子:

public static void main(String[] args) {String str = null;System.out.println(str.length()); // 这会抛出NullPointerException
}

        在上面的代码中,我们尝试获取一个空字符串引用的长度,这在运行时将会抛出一个未检查异常,即 NullPointerException。这是因为 str 没有指向任何有效的 String 对象。

        未检查异常的一个关键特征就是它们在编译阶段不会出现任何错误,但在运行期间,如果没有适当的预防措施或错误处理机制,就可能导致程序崩溃。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/814790.shtml

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

相关文章

浮点数的表示

王道考研ppt总结: 二、个人理解 浮点数解决的是定点数的位数局限,导致表示范围有限的问题 阶码:由阶符和数值部分组成,阶符为,小数点向左移动,否则向右移动;数值部分,是底数的几次幂…

【算法】标签算法及其运作流程

标签算法 1. 标签算法及其运作流程2. 标签算法主要有哪些?3.用python语言举例实现聚类 1. 标签算法及其运作流程 标签算法是一种用于自动为数据或文本内容添加标签或分类的算法。这些标签可以帮助组织、检索和理解数据,是信息管理和数据挖掘中的重要工具…

区块链媒体推广的8个成功案例解析-华媒舍

区块链领域作为一个新兴行业,媒体推广对于项目的成功发展起着至关重要的作用。本文将从八个成功案例中来分析区块链媒体推广的重要性和成功策略。 1. 媒体报道对于区块链项目的重要影响 媒体报道是提升区块链项目知名度和用户认可度的重要手段。对于区块链项目来说…

Java | Leetcode Java题解之第25题K个一组翻转链表

题目: 题解: class Solution {public ListNode reverseKGroup(ListNode head, int k) {ListNode hair new ListNode(0);hair.next head;ListNode pre hair;while (head ! null) {ListNode tail pre;// 查看剩余部分长度是否大于等于 kfor (int i 0…

CSS3新增

一些CSS3新增的功能 课程视频链接 目录 CSS3概述私有前缀长度单位remvwvhvmaxvmin 颜色设置方式rgbahslhsla 选择器动态伪类目标伪类语言伪类UI伪类结构伪类否定伪类伪元素 盒子属性box-sizing问题插播 宽度与设置的不同 resizebox-shadowopacity 背景属性background-originb…

BIRDy:机器人动力学辨识基准

文章目录 前言入门前提条件Benchmark结构运行benchmark如何(重新)生成一条激励轨迹如何(重新)生成实验数据如何(重新)生成机器人的辨识模型如何重新编译基准程序的.MEX文件用户自定义在基准中添加新的机器人在基准中加入新的辨识算法源码前言 如果没有一个合适的框架,学生、工…

SDK-0.7.8-Release-实体管理 - ApiHug-Release

🤗 ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace 更多精彩…

大数据存储解决方案和处理流程——解读大数据架构(四)

文章目录 前言数据存储解决方案数据集市运营数据存储(Operational Data Store)数据中心 数据处理数据虚拟化和数据联合虚拟化作为 ETL 或数据移动的替代品数据目录数据市场 前言 在数字时代,数据已成为公司的命脉。但是,仅仅拥有…

CNN卷积神经网络:理论基础、核心架构与多元应用

CNN是一种深度学习模型,利用卷积层提取图像特征,池化层降维与增强不变性,全连接层实现分类/回归。核心理论包括局部感知、权值共享、多层抽象。广泛应用图像识别、目标检测、语义分割、生成任务等领域。 一、CNN理论基础 1、局部感知野&…

二叉树之遍历

概述 之前有说到二叉树的建树,这次讲讲二叉树的遍历过程。二叉树的遍历分为深度优先遍历和广度优先遍历,二叉树的逻辑结构如下所示: class TreeNode{int val;TreeNode left;TreeNode right;public TreeNode(){}public TreeNode(int val){thi…

dPET论文笔记

PBPK论文笔记 题目:Self-supervised Learning for Physiologically-Based Pharmacokinetic Modeling in Dynamic PET 摘要 动态正电子发射断层扫描成像 (dPET) 提供示踪剂的时间分辨图像。从 dPET 中提取的时间活动曲线 (TAC&a…

C#如何快速读取大型文本文件?StreamReader+FileStream

FileStream读取字节流, StreamReader则是用于从字节流中读取文本数据并进行解码。 FileStream用于打开文件流,提供了对文件的底层访问,它读取的是字节流。 StreamReader用于从字节流中读取文本数据,并根据指定的编码(或使用默认编…

题目:一个最优美的图案。

题目:一个最优美的图案。    There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated should l…

Spring Boot统一功能处理(一)

本篇主要介绍Spring Boot的统一功能处理中的拦截器。 目录 一、拦截器的基本使用 二、拦截器实操 三、浅尝源码 初始化DispatcherServerlet 处理请求(doDispatch) 四、适配器模式 一、拦截器的基本使用 在一般的学校或者社区门口,通常会安排几个…

(我的创作纪念日)[MySQL]数据库原理7——喵喵期末不挂科

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…

软考系统架构设计师考试论文应试技巧

写论文是你展示系统分析水平的最佳时机,如果您面对三个论文问题的阐述,怎么才能让人相信你有项目实践经验,有较强的分析问题、解决问题的能力,怎么才能让你的论文就很有说服力呢?下面是湖北软考网小编总结出来的几条系…

无酒不水浒,无肉不江湖

很难想象,没有酒的《水浒传》,将会是什么样儿? 武松醉打蒋门神,小霸王醉入销金帐、杨雄醉骂潘巧云,诸如此类,都是水浒传中经典的酒故事,倘若离开了酒,水浒少的就不仅仅是故事了&…

头歌-机器学习实验 第8次实验 决策树

第1关:什么是决策树 任务描述 本关任务:根据本节课所学知识完成本关所设置的选择题。 相关知识 为了完成本关任务,你需要掌握决策树的相关基础知识。 引例 在炎热的夏天,没有什么比冰镇后的西瓜更能令人感到心旷神怡的了。现…

【nnUNetv2进阶】三、nnUNetv2 自定义网络-发paper必会

nnUNet是一个自适应的深度学习框架,专为医学图像分割任务设计。以下是关于nnUNet的详细解释和特点: 自适应框架:nnUNet能够根据具体的医学图像分割任务自动调整模型结构、训练参数等,从而避免了繁琐的手工调参过程。 自动化流程:nnUNet包含了从数据预处理到模型训练、验证…

【Linux实践室】Linux高级用户管理实战指南:用户所属组变更操作详解

🌈个人主页:聆风吟_ 🔥系列专栏:Linux实践室、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️任务描述二. ⛳️相关知识2.1 🔔Linux查看用户所属组2.1.1 👻使…