【Java】高级篇1:异常处理

news2024/9/23 11:14:58

异常:程序在执行过程中出现的非正常情况,如果不处理最终会导致JVM的非正常停止。

Java的异常抛出机制

Java异常体系

1、Throwable

2、Error和Exception

异常处理方式

1、try-catch-finally(捕获异常)

基本结构:

使用细节:

2、throws+异常类型

格式举例:

throws不算真正处理了异常!

针对编译异常时,方法重写要求:子类重写的方法抛出的异常类型与父类被重写的方法抛出的异常类型相同,或是父类被重写的方法抛出的异常类型的子类。

两种异常处理方式的选择

使用throw手动抛出异常对象

原因:在实际开发中,如果出现无法满足具体场景的代码问题,我们就有必要手动抛出一个指定类型的异常对象。

格式:throw+异常类对象

throw后的代码不能被执行,编译不通过!

自定义异常类

如何自定义异常类?

如何使用


为什么需要

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

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

相关文章

B140XW01 V8 +OZ9956B PDF

B140XW01 V8 PDF OZ9956B 14B38-COW 18650串联50欧点亮一颗灯珠

代码随想录算法训练营第11天| 20. 有效的括号,1047. 删除字符串中的所有相邻重复项,150. 逆波兰表达式求值

系列文章目录 目录 系列文章目录20. 有效的括号利用栈对称匹配将栈中元素弹出与判断栈顶元素是否匹配分开,比较耗时(2ms):若将栈中元素弹出与判断栈顶元素是否匹配放一起,比较节省时间(1ms): 1047. 删除字符串中的所有…

探索区块链世界:从加密货币到去中心化应用

相信提到区块链,很多人会想到比特币这样的加密货币,但实际上,区块链技术远不止于此,它正在深刻地改变我们的生活和商业。 首先,让我们来简单了解一下什么是区块链。区块链是一种分布式数据库技术,它通过将…

MySQL的insert-on-duplicate语句详解

一、insert-on-duplicate语句语法 注意:ON DUPLICATE KEY UPDATE只是 MySQL的特有语法,并不是SQL标准语法! INSERT INTO … ON DUPLICATE KEY UPDATE 是 MySQL 中一种用于插入数据并处理重复键冲突的语法。 这个语法适用于在 insert的时候…

操作系统核心知识点大梳理

计算机结构 现代计算机模型是基于-冯诺依曼计算机模型 计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去…

做跨境用哪种代理IP比较好?怎么选到干净的IP?

代理IP对于做跨境的小伙伴来说,都是必不可少的工具,目前出海的玩法已经是多种多样,开店、账号注册、短视频运营、直播带货、网站SEO等等都是跨境人需要涉及到的业务。而国外代理IP的获取渠道非常多,那么做跨境到底应该用哪种代理I…

Servlet两种配置

通过xml配置 <servlet><servlet-name>MyServlet</servlet-name><servlet-class>MyServlet</servlet-class> </servlet> <servlet-mapping><servlet-name>MyServlet</servlet-name><url-pattern>/MyServlet</ur…

Excel数据可视化

饼图 1、选中数据----点击插入----点击饼图 2、更改数据标签&#xff08;修改标题名直接改就行&#xff09; 柱形图 1、选中数据、点击插入二维柱形图 坐标轴问题----切换行和列 如何将横轴变成想要的4、5、6、7月&#xff1f; &#xff08;1&#xff09;右键----选择数据 -…

传值、传址、空间释放详细图解

目录 前言 一.进程 1.1 进程的映射 1.2 进程的虚拟空间 二.函数传参 2.1 函数传参 2.2 函数传值 2.2.1 函数传值案例1 2.2.2 函数传值案例2 2.2.3 返回值为常量 2.3 函数传送地址 2.3 字符串使用 前言 详细介绍函数传值和传地址区别&#xff1a;进行数据操作的区别&#xff0c…

08|记忆:通过Memory记住客户上次买花时的对话细节

无论是LLM还是代理都是无状态的&#xff0c;每次模型的调用都是独立于其他交互的。也就是说&#xff0c;我们每次通过API开始和大语言模型展开一次新的对话&#xff0c;它都不知道你其实昨天或者前天曾经和它聊过天了。 使用ConversationChain from langchain import OpenAI…

中国国际光伏展

河北省京津冀国际光伏展是一个旨在推动光伏产业发展的展览会。该展览会的举办地点在河北省&#xff0c;也被称为京津冀地区&#xff0c;这个地区是中国重要的经济发展区域之一&#xff0c;拥有丰富的太阳能资源和光伏产业基础。 光伏展览会将展示最新的光伏技术、产品和解决方案…

ABS210-ASEMI新能源专用整流桥ABS210

编辑&#xff1a;ll ABS210-ASEMI新能源专用整流桥ABS210 型号&#xff1a;ABS210 品牌&#xff1a;ASEMI 封装&#xff1a;ABS-4 正向电流&#xff08;Id&#xff09;&#xff1a;2A 反向耐压&#xff08;VRRM&#xff09;&#xff1a;1000V 正向浪涌电流&#xff1a;3…

Fabric.js在vue2中使用

Fabric.js安装 这里我是基于vue来使用的&#xff0c;先安装上Fabric.js npm install fabric 在main.js中 import fabric from fabric Vue.use(fabric);Fabric 提供了 7 种基础形状&#xff1a; fabric.Circle (圆)fabric.Ellipse (椭圆)fabric.Line (线)fabric.Polyline (多条…

汽车电子零部件(8):T_Box

前言: 网联汽车(Connected Vehicles ,CV)是一个广泛的概念,四个主要的CV线程已发展起来:互联、自主、共享和电动。这些应用于包括CV在内的垂直领域:汽车、通信、互联网和共享手机服务。中国汽车工程师学会(SAEC)提倡将车载ADAS(高级驾驶员辅助系统)与通信技术相结合…

概述工业4.0时代的数据采集

在当今全球制造业转型升级的大潮中&#xff0c;工业4.0以其智能化、网络化和个性化的特征&#xff0c;引领了新的工业革命。其中&#xff0c;数据采集作为工业4.0的核心要素&#xff0c;是实现智能制造的关键环节&#xff0c;它的重要性不言而喻。 工业4.0时代的数据采集&#…

Linux中判断某个Docker容器服务的内存是否超过临界值,比如到达10G,则在凌晨4点执行定时任务执行重新构建命令

监测NAME是blade-jiangxinzhougarden的服务&#xff0c;如果内存&#xff08;MEM USAGE&#xff09;超过10G则在凌晨4点执行重新构建命令 1.编写脚本文件restart_jxz.sh #!/bin/bash# 设置要监控的容器名称或服务名称(替换成你的服务名) SERVICE_NAME"blade-jiangxinzhou…

SpringSecurity(SpringBoot2.X版本实现)

资料来源于 SpringSecurity框架教程-Spring SecurityJWT实现项目级前端分离认证授权 侵权删 目录 介绍 快速开始 认证 认证流程 登录校验流程 SpringSecurity完整流程 认证流程详解 代码实现 准备工作 mysql mybatis-plus redis 统一返回类 核心代码 密码加密存…

前端UI框架是不是大厂给中小企业“画地为牢”?

先说结论&#xff1a;不能说全是吧&#xff0c;但也大部分是。大厂赏饭&#xff08;开源&#xff09;给你吃&#xff0c;你就得按照他的规矩来。 一、大厂为什么喜欢开源 大厂愿意开源他们的前端框架有以下几个原因&#xff1a; 社区贡献&#xff1a;开源框架可以吸引更多的开…

【简写Mybatis】04-数据源的解析、创建和使用

前言 在学习MyBatis源码文章中&#xff0c;斗胆想将其讲明白&#xff1b;故有此文章&#xff0c;如有问题&#xff0c;不吝指教&#xff01; 注意&#xff1a; 学习源码一定一定不要太关注代码的编写&#xff0c;而是注意代码实现思想&#xff1b; 通过设问方式来体现代码中的…

Redis中的String编码转换底层原理及6.0新特性

String编码转换底层原理 String对象为什么把大于39字节或者44字节的字符串编码为raw&#xff0c;小于的时候编码为embstr? 在Redis3.2以前的版本中,SDS作为字符串类型中存储字符串内容的结构&#xff0c;源码如下&#xff1a; 3.2版本SDS结构 struct sdshdr {// 记录buf数…