Java—异常处理

异常的结构图

异常知识点

  1. 异常分类:

    • 按照在程序编译阶段是否被检查,异常分为编译时异常(Checked Exception)和运行时异常(Unchecked Exception)。
    • 编译时异常是指必须进行显式处理的异常,例如IOException;而运行时异常是指无需显式捕获的异常,例如NullPointerException。
  2. 异常处理机制:

    • 使用try-catch语句块来捕获异常,try块中放置可能抛出异常的代码,而catch块中处理这些异常。
    • 可以使用多个catch块来处理不同类型的异常,确保每种异常都能得到适当的处理。
  3. 异常链:

    • 可以使用异常链来连接多个异常,以便更好地追踪程序错误的来源。通过在catch块中传递异常,形成异常链。
  4. finally块:

    • 可以使用finally块来执行无论是否发生异常都需要执行的代码,通常用于释放资源或执行清理操作。
  5. 抛出异常:

    • 当程序发生错误时,可以使用关键字throw来抛出一个异常实例。
  6. 自定义异常:

    • 程序员可以根据自己的需求创建自定义异常类,通过继承Exception类或其子类,以表示特定的错误情况。
  7. 异常处理的最佳实践:

    • 在捕获异常时,应尽量提供详细的错误信息,以便进行适当的处理和调试。
    • 避免捕获异常后什么都不做,应该根据具体情况进行合理的处理,比如记录日志、提示用户或者进行异常恢复。

异常的发生

  1. 创建异常对象
  2. 让异常发生(抛出异常)
import org.junit.jupiter.api.Test;public class ExceptionTest {@Testpublic void test1() {// 1. 创建异常对象NullPointerException nullPointerException = new NullPointerException();// 2. 让异常发生throw nullPointerException;// 一般我们合并一起写throw new NullPointerException();}
}

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

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

相关文章

【Linux】写一个日志类

文章目录 1. 源代码2. 函数功能概览3. 代码详细解释3.1 头文件和宏定义3.2 Log类定义3.3 打印日志的方法3.4 操作符重载和析构函数3.5 可变参数函数的原理 4. 测试用例 1. 源代码 下面代码定义了一个 Log 类,用于记录日志信息。这个类支持将日志信息输出到屏幕、单…

Java扩展机制:SPI与Spring.factories详解

一、SPI SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。 整体机制图如下: Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。 系统设计的各个抽象,往往有很多不…

戴尔科技:一盆冷水浇醒了AIPC

这年头,只要沾上英伟达的公司,不论美股还是大A,都跟着鸡犬升天几轮过,但昨晚英伟达蒸发1064亿美元, 跟着遭罪的也不少,有没有一夜惊魂梦醒的感觉? 今天我们来说说——戴尔科技。 昨晚戴尔科技大跌5.18%&a…

5G无线标准演进综述及新技术引入

摘 要 随着经济和社会的发展,5G业务越来越丰富多彩,1080P高清视频、裸眼3D、网联汽车、云手机等新业务、新终端对网络的要求也越来越高;另一方面,5G标准持续演进,在MIMO、载波聚合、移动性管理、uRLLC、切片、定位等方…

你了解MySQL分区表吗?知道哪些情况不适用分区表吗?

一、分区表的使用 简单来说,分区表就是把物理表结构相同的几张表,通过一定算法,组成一张逻辑大表。这种算法叫“分区函数”,当前 MySQL 数据库支持的分区函数类型有 RANGE、LIST、HASH、KEY、COLUMNS。 无论选择哪种分区函数,都要指定相关列成为分区算法的输入条件,这些列…

ESP32开发笔记

ESP32 学习笔记 MQTT5 共享订阅 什么是共享订阅? 在普通的订阅中,每发布一条消息,所有匹配的订阅端都会收到该消息的副本。然而,当某个订阅端的消费速度无法跟上消息的生产速度时,我们无法将其中一部分消息分流到…

`nano` 文本编辑器快捷键使用

在 nano 文本编辑器中,可以帮助用户高效编辑文本,下面是每个快捷键的详细解释: 常用快捷键 ^G: Help - 显示帮助信息。这里的 ^ 代表 Ctrl 键,因此 ^G 就是 Ctrl G。^O: Write Out - 保存文件。^O 即 Ctrl O,用于将…

模仿库实现priority_queue

1 priority_queue 1.1 概念 优先级队列,一种大/小堆(默认为大堆) 1.2 大堆和小堆 一种完全二叉树,大堆根节点一定比子字节大 小堆根节点一定比子字节小 向下调整 从根节点开始比较与子节点的大小不断向下 向上调整 找到最后一个非叶子节点&#xf…

mac多媒体影音库:Emby for Mac 中文版

Emby软件是一款功能强大的媒体服务器软件,旨在为用户提供丰富的多媒体体验。以下是关于Emby软件的详细介绍: 下载地址:https://www.macz.com/mac/7964.html?idOTI2NjQ5Jl8mMjcuMTg2LjE1LjE4Mg%3D%3D 主要功能 媒体管理:Emby允许用…

代码随想录-Day25

216.组合总和III 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 示例 1: 输入: k 3, n 7 输…

Python OCR 图片转文字进阶:读光OCR之行检测模型+行识别模型

Python OCR 图片转文字进阶:读光OCR之行检测模型行识别模型 介绍阿里云文字识别OCR(读光OCR)前置条件模型1:行检测模型模型1:行识别模型 代码:main.py 介绍 什么是OCR? OCR是“Optical Charac…

Leetcode:字符串转换整数 (atoi)

题目链接:8. 字符串转换整数 (atoi) - 力扣(LeetCode) 普通版本(条件限制) class Solution { public:int myAtoi(string s) {int res 0;int i 0;int flag 1;//假设整数为正while(s[i] )//跳过空格{i;}if(s[i] …

德人合科技——@天锐绿盾 | -文档透明加密系统

天锐绿盾文档透明加密系统是一种先进的数据安全解决方案,旨在保护企业和组织的敏感信息,防止未经授权的访问和泄漏。 PC地址: https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 以下是该系统的一些关键特点和功…

[C++11/14新特性] tuple元组介绍

C11 标准新引入了一种类模板,命名为 tuple(中文可直译为元组)。tuple 最大的特点是:实例化的对象可以存储任意数量、任意类型的数据。tuple 的应用场景很广泛,例如当需要存储多个不同类型的元素时,可以使用…

3D目标检测入门:探索OpenPCDet框架

前言 在自动驾驶和机器人视觉这两个飞速发展的领域中,3D目标检测技术扮演着核心角色。随着深度学习技术的突破性进展,3D目标检测算法的研究和应用正日益深入。OpenPCDet,这个由香港中文大学OpenMMLab实验室精心打造的开源工具箱,…

加密算法简述

目录 1 加密算法的分类 2 对称加密 3 非对称加密 4 哈希算法 1 加密算法的分类 数据加密的基本过程是将原本的明文数据依照某种算法进行一定的处理,使之成为一段不可读的密文,只有通过相应的密钥与算法进行计算后才可显示出原文。而这个过程中的算法…

【用Python画画】六一儿童节画爱心

本文收录于 《Python编程入门》专栏,从零基础开始,分享一些Python编程基础知识,欢迎关注,谢谢! 文章目录 一、前言二、代码示例三、知识点梳理四、总结 一、前言 本文介绍如何使用Python的海龟画图工具turtle&#xf…

linux中如和查找端口是否被占用

在Linux系统中&#xff0c;可以使用以下命令来查找特定端口是否被占用&#xff1a; 使用netstat命令&#xff1a; netstat -tuln | grep <port_number>其中&#xff0c;-t表示TCP协议&#xff0c;-u表示UDP协议&#xff0c;-l表示监听状态&#xff0c;-n表示显示端口号…

Docker从安装开始精通

从虚拟机到容器 1.环境配置的难题 软件开发最大的麻烦事之一&#xff0c;就是环境配置。用户计算机的环境都不相同&#xff0c;你怎么知道自家的软件&#xff0c;能在那些机器跑起来&#xff1f; 用户必须保证两件事&#xff1a;操作系统的设置&#xff0c;各种库和组件的安装…

堆排序的实现

在上一篇博客中&#xff0c;介绍了堆的实现&#xff0c;现在来介绍一下堆排序。 一.打印有序&#xff1a; 现在先给一个无序的数组&#xff0c;现在我们利用我们实现的堆的功能先完成一下打印排序&#xff1a; 在for循环里是一个建堆的过程&#xff0c;每来一个数据就放入堆中…