java异常概述及自定义处理

前言

学到异常了,本来以为处理异常只是避免bug,结果发现还可以为了编程需要自定义异常。打好基础,daydayup!

异常

什么是异常

 异常就是代表程序出现的问题

 异常的体系

异常体系指的是java开发人员为了方便程序员使用所开发的异常类,可以根据不同的问题来封装异常信息。

 Error:代表的是系统级别错误,是sun公司自己用的,不是给程序员用的,基本不用去管。

Exception:代表异常,是开发程序时所遇到的问题,开发者运用Exception及Exception的子类来封装问题。

RuntimeException:代表运行时异常,是运行时出现的异常,编译阶段不会出现错误提醒。

其他编译时异常:编译阶段会出现错误提醒的异常

例1:运行时异常(编译时不出错,但运行时会出错,常称为bug)

例2:编译时异常(编译时提示出错) 

 针对编译时异常的处理

处理方法有两种:1,抛出异常(throw);2,捕获异常(try....catch)

1,抛出异常

在方法上使用throws关键字,可以将方法内部出现的异常抛出去给调用者处理

throws书写格式
方法 throws 异常1,异常2,异常3...{   }

2, 捕获异常

直接捕获程序出现的异常

(try....catch)书写格式
try{
//监视异常可能出现的代码
}catch(异常类型1 变量){
//处理变量
}catch(异常类型2 变量){
//处理变量
}...

 例:

 自定义异常

java没办法为所有的问题提供异常类,所以自己编程需要使用异常解决某种问题,就需要自己定义异常类

 自定义异常种类
1,自定义运行时异常

自定义运行时异常特点

编译阶段不报错,运行时才会出现错误

 自定义运行时异常创建

1,定义一个异常类并继承RuntimeException;

2,重写构造器;

3,在需要抛出的代码下面添加throw new 异常类(XXX)

例:如下

 2,自定义编译时异常

自定义编译时异常特点

编译阶段报错,提醒强烈

  自定义编译时异常创建

1,定义一个异常类继承Exception;

2,重写构造器;

3,在需要抛出的代码下面添加throw new 异常类(XXX)

例:如下

 日常开发如何处理日常

有两种方法:1,捕获异常,记录异常并响应合适的信息给用户;2,捕获异常,尝试重新修复

 方法1:捕获异常,记录异常并响应合适的信息给用户

抛出Exception,使用(try...catch)打印异常信息记录

例:如下

方法2: 捕获异常,尝试重新修复

使用(try...catch)捕获异常,随后加入循环,直到输入正确后停止循环

例:如下

总结

异常不仅仅是出错的bug,也有可能是我们所需要的一种状态,要多加练习才好。整理结束,撒花!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

稀碎从零算法笔记Day10-LeecCode:赎金信

题型:哈希表、字符串 链接:383. 赎金信 - 力扣(LeetCode) 来源:LeetCode 题目描述 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以…

探索数据可视化:Matplotlib 高级绘图功能(一)

双轴显示 import numpy as np import matplotlib.pyplot as pltx np.linspace(-np.pi, np.pi,50) y np.sin(x)plt.plot(x,y,color blue)# 设置 y 轴的刻度为从 -1 到 1 的 11 个等间距位置 _ plt.yticks(np.linspace(-1,1,11),color blue)ax plt.gca()# 获取当前视图 # …

PlantUML + VS Code

PlantUML 使用实例 文章目录 PlantUML 使用实例1. PlantUML简介1.1 什么是PlantUML1.2 PlantUML优势在哪 2. 怎么用2.1 环境依赖2.2 VS Code组件安装 3. 常用语法3.1 标记开始结束3.2 声明参与者3.3 声明关系3.4 对消息序列编号3.5 组合消息 4. 实例 1. PlantUML简介 1.1 什么…

vulhub靶场-matrix-breakout-2-morpheus

下载&部署 从官网中下载 https://www.vulnhub.com/entry/matrix-breakout-2-morpheus,757/ 下载完成后,在vmware中打开,选择刚刚下载的ova文件 vmware打开文件后需要将刚导入的机器重新启动 再检查下网卡是否是和kali在同一张网卡下就可以开始打靶了…

Jmter接口网站压力测试工具

首先下载Jmeter 官方地址:Apache JMeter - Apache JMeter™ 安装Jmeter 把下载的文件进行解压,产生如下目录: 打开bin文件夹下的jmeter.bat文件及进入程序的主界面窗体jmeter.log是日志文件。 主意:需要配置java环境。 jmter创…

解决虚拟机静态网址设置后还是变动的的问题

源头就是我的虚拟机静态网址设置好了以后但是网址还是会变动 这是我虚拟机的配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 这是出现的问题 进入这里 cd /etc/sysconfig/network-scripts/ 然后我去把多余的ens33的文件都删了 然后还不行 后来按照这个图片进行了下 然后…

权限管理系统-0.4.0

五、权限管理 5.1 引入JWT JWT是JSON Web Token的缩写,即JSON Web令牌,是一种自包含令牌。 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。 JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以…

STM32CubeIDE基础学习-STM32CubeIDE软件新增工程文件夹

STM32CubeIDE基础学习-STM32CubeIDE软件新增工程文件夹 文章目录 STM32CubeIDE基础学习-STM32CubeIDE软件新增工程文件夹前言第1章 添加文件夹第2章 添加文件路径2.1 相对路径方法2.2 绝对路径方法 总结 前言 在编程的过程中,如果需要在原有的工程基础上新增其它的…

C 嵌入式系统设计模式 24:安全性和可靠性介绍

本书的原著为:《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》,讲解的是嵌入式系统设计模式,是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述嵌入式安全性和可靠性模式之一…

二叉搜索树题目:前序遍历构造二叉搜索树

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 解法三思路和算法代码复杂度分析 解法四思路和算法代码复杂度分析 题目 标题和出处 标题:前序遍历构造二叉搜索树 出处:1008. …

Anacond 安装及使用教程pytorch安装

下载网址:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror pycharm安装教程 【从Python基础到深度学习】1. Python PyCharm安装及激活-CSDN博客 pycharm添加anaconda环境 conda创建虚拟环境 base表示当前conda的base环境&a…

sheng的学习笔记- AI-类别不平衡问题

目录:sheng的学习笔记-AI目录-CSDN博客 什么是类别不平衡问题 类别不平衡(class-imbalance),也叫数据倾斜,数据不平衡,就是指分类任务中不同类别的训练样例数目差别很大的情况。 例如有998个反例&#xf…

【智能算法】蜻蜓算法(DA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.代码实现4.参考文献 1.背景 2016年,Mirjalili受到蜻蜓静态和动态集群行为启发,提出了蜻蜓算法(Dragonfly algorithm, DA)。 2.算法原理 2.1算法思想 蜻蜓集群有两种行为目的:狩猎&#xf…

大模型相关整理

机器学习 模型就是函数,这个函数可能是一个很简单的线性函数,也可以是一个非常复杂的高阶函数、或者是一个多层的神经网络函数。 机器学习领域的很多研究和方法都是在尝试设计这个函数,以自动驾驶领域为例,之前的自动驾驶基于人…

四川宏博蓬达法律咨询有限公司:专业可靠,您身边的法律守护者

在现代社会,法律咨询服务的需求日益增长,选择一家专业可靠的法律咨询公司成为了许多企业和个人的当务之急。四川宏博蓬达法律咨询有限公司便是这样一个值得信赖的法律服务提供者,以其专业、高效、贴心的服务,赢得了广大客户的信赖…

c++ primer plus笔记 第十八章 探讨c++新标准

复习前面的内容: 1.auto,可以自动识别auto本身在这种语境下是什么类型 2.decltype,让一个变量的类型和另外一个变量的类型相同 decltype(x) y;//让y的类型和x的类型相同 如何理解? decltype是一个关键词,其作用是检查括号内的…

【MySQL系列 05】Schema 与数据类型优化

良好的数据库 schema 设计和合理的数据类型选择是 SQL 获得高性能的基石。 一、选择优化的数据类型 MySQL 支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。不管存储哪种类型的数据,下面几个简单的原则都有助于做出更好的选择。 1. …

AOP-注解实现-记录日志到数据库

概念解释 AOP:Aspect Oriented Programming Aspect:方面Oriented:面向…的Programming编程 之前我对模块化编程的认识,主要是局限在布局结构、目录结构上。比如Vue的template模板。 对方法的模块化编程,我之前的认识…

基于springboot+layui仓库管理系统设计和实现

基于 java springbootlayui仓库管理系统设计和实现 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取…

硬件工程师面试题梳理-百度硬件面试题

硬件工程师基本职责 在公司里面,硬件工程师的主要职责包括设计、开发和测试硬件系统,以满足产品需求和性能要求。他们负责确保硬件系统的可靠性、稳定性和可维护性,并与软件工程师和其他团队成员合作,以确保硬件和软件的协同工作…