【JavaEE重点知识归纳】第11节:认识异常
目录
一:异常的概念和体系结构
1.概念
2.体系结构
3.异常分类
二:异常的处理
1.防御式编程
2.异常的抛出
3.异常的捕获
4.异常的处理流程
三:自定义异常
一:异常的概念和体系结构
1.概念
(1)在Java中,在程序执行过程中发生的不正常的行为称为异常
(2)常见的的异常

2.体系结构

3.异常分类
(1)编译时异常(受查异常)
编译时报错
(2)运行时异常(非受查异常)
比如:NullPointerException、ArrayIndexOutOfBoundsException、ArithmeticException
注意:编译时出现的语法错误不能称为异常
二:异常的处理
1.防御式编程:
(1)LBYL:事前防御型(if)
(2)EAFP:事后认错型(try、catch、finally)
2.异常的抛出
(1)在Java中,异常处理主要的5个关键字:throw、try、catch、final、throws
(2)抛出异常:throw必须写在方法体里面,异常一旦抛出,后面的代码就不会执行
throw new xxxException("异常产生的原因");
3.异常的捕获
(1)异常声明throws:通过throws处理编译时异常
【这个详细代码在后面自定义类型】

(2)try-catch
throws对异常并没有真正处理,而是将异常报告给抛出异常方法的调用者,由调用者处理。如果真正要对异常进行处理,就需要try-catch
语法格式:
try{
//将可能出现异常的代码放在这里
}catch(要捕获的类型 e ){
//如果try中的代码抛出异常了,此处的catch捕获时异常类型与try中跑出的类型一致,或者是try中抛出的异常的父类时,就会被捕获到
//对异常就可以正常处理,处理完毕后,跳出try-catch结构,继续执行后续代码
}
catch(要捕获的类型 e ){
//try中可能抛出多个不同的异常对象,则必须使用多个catch来捕获
}finally{
//此处代码一定会执行
}
//后续代码
//当异常被捕获到了,异常就被处理了,这里的后续代码一定会被执行到
//如果捕获了,但是捕获类型不同,就为白捕获,这里的代码也不会执行到

4.异常的处理流程
(1)程序先执行try中的代码
(2)如果try中的代码出现异常,就会结束try中的代码,看catch中的异常类型是否匹配
(3)如果找到匹配的异常类型,就会执行catch中的代码
(4)如果没有找到匹配的异常类型,就会向上传递到上层调用者
(5)无论是否找到匹配的异常类型,finally中的代码都会被执行到(在该方法结束之前执行)
(6)如果上层调用者没有处理的了异常,就会继续向上传递
(7)一直到main方法也没有合适的代码处理异常,就会交给JVM来进行处理,此时程序就会异常终止
三:自定义异常
1.前提
Java中虽然内置了丰富的异常类,但是并不能完全表示实际开发中遇到的一种异常,此时就需要维护复合实际情况的异常结构
2.具体方式
(1)自定义异常类,然后继承自Exception或RunTimeException
(2)实现一个带有String类型参数的构造方法,参数含义:出现异常的的原因
(3)
public class PasswordException extends Exception{public PasswordException(String message){super(message);}
}
public class NameException extends Exception{public NameException(String message){super(message);}
}
public class Login {private String name="admin";private String password="1234";public static void loginInfo(String name,String password) throws NameException, PasswordException {if(!name.equals(name)){throw new NameException("用户名错误");}if(!password.equals(password)){throw new PasswordException("用户名错误");}System.out.println("登陆成功");}public static void main(String[] args) {try {loginInfo("amdin","1234");} catch (NameException e) {throw new RuntimeException(e);} catch (PasswordException e) {throw new RuntimeException(e);}}
}
3.注意事项
继承自Exception的异常默认是受查异常;继承自RunTimeException的异常默认是非受查异常
相关文章:
【JavaEE重点知识归纳】第11节:认识异常
目录 一:异常的概念和体系结构 1.概念 2.体系结构 3.异常分类 二:异常的处理 1.防御式编程 2.异常的抛出 3.异常的捕获 4.异常的处理流程 三:自定义异常 一:异常的概念和体系结构 1.概念 (1)在…...
一键自助建站系统api版系统源码
自助建站系统,一建建站系统api版,自动建站 安装推荐php7.2或7.2以下都行 可使用虚拟主机或者服务器进行搭建。 分站进入网站后台 域名/admin 初始账号123456qq.com密码123456 找到后台的网站设置 将主站域名及你在主站的通信secretId和通信secretKey填进去。 即可正常使用 通信…...
全国三维数字化创新设计大赛湖北赛区省赛成功举办
须弥芥子,数字如海。10月14日—15日,2023 年数字科技文化节——第16届全国三维数字化创新设计大赛湖北赛区省赛暨产教联合体大会在武汉软件工程职业学院成功举行。 (大赛全体专家领导合影) 全国三维数字化创新设计大赛组委会副秘…...
OpenCV #以图搜图:均值哈希算法(Average Hash Algorithm)原理与实验
1. 介绍 均值哈希算法(Average Hash Algorithm) 是哈希算法的一种,主要用来做相似图片的搜索工作。 2. 原理 均值哈希算法(aHash)首先将原图像缩小成一个固定大小的像素图像,然后将图像转换为灰度图像&am…...
博通BCM575系列RDMA网卡驱动bnxt_re分析(一)
简介 整个BCM系列驱动分成以太网部分(bnxt_en.ko)和RDMA部分(bnxt_re.ko), 两个模块之间通过内核的auxiliary_bus进行管理.我们主要分析下bnxt_re驱动. 代码结构 这个驱动的核心是 qplib_fp.c, 这个文件主要包含了驱动的数据路径, 包括Post Send, Post Recv, Poll CQ流程的实…...
集合总结-
Collection 常用方法 package com.test01;import java.util.ArrayList; import java.util.Collection; /*添加元素---boolean add(E e);移除元素---boolean remove(Object c);判断元素是否存在---boolean contains(Object c);*/ public class S {public static void main(Str…...
【知识串联】概率论中的值和量(随机变量/数字特征/参数估计)【考研向】【按概率论学习章节总结】
就我的概率论学习经验来看,这两个概念极易混淆,并且极为重点,然而,在概率论的前几章学习中,如果只是计算,对这方面的辨析不清并没有问题。然而,到了后面的参数估计部分,却可能出现问…...
上游服务不可用了,下游服务如何应对?
上游服务不可用了,下游服务如何应对? 引言 在系统中,上游服务和下游服务是两个关键概念。上游服务通常指的是提供某种功能或数据的服务端,它接收来自下游服务的请求,并根据请求进行处理和响应。下游服务通常指的是发…...
WebGL笔记:矩阵的变换之平移的实现
矩阵的变换 变换 变换有三种状态:平移、旋转、缩放。当我们变换一个图形时,实际上就是在移动这个图形的所有顶点。解释 webgl 要绘图的话,它是先定顶点的,就比如说我要画个三角形,那它会先把这三角形的三个顶点定出来…...
XTU-OJ 1187-Candy
WCB某天买了非常多的糖果并把它们分成N份,依次分别有1,2,3…,N个糖果。他想拿出其中的3份分给他的室友, 为了不让室友们闹意见,必须让这三份的糖果总数恰好能被三人均分。请问他一共有多少种不同的组合方案数ÿ…...
基于 nodejs+vue城市轨道交通线路查询系统mysql
目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…...
电商时代,VR全景如何解决实体店难做没流量?
近日,电商和实体经济的对立成为了热门话题,尽管电商的兴起确实对线下实体店造成了一定的冲击,但实体店也不是没有办法挽救。VR全景助力线下实体店打造线上店铺,打通流量全域布局,还能实现打开产品、查看产品内部细节等…...
操作系统-浅谈CPU与内存
目录 计算机的基本组成CPU内存虚拟内存内存分段内存分页 CPU与内存的交互过程高速缓存cache 所有图片均来自:小林coding 计算机的基本组成 计算机由软件和硬件组成 硬件由CPU(中央处理器)存储器(内存外存)外部设备组成。 软件由应用软件和系…...
K8s 部署 CNI 网络组件+k8s 多master集群部署+负载均衡
------------------------------ 部署 CNI 网络组件 ------------------------------ ---------- 部署 flannel ---------- K8S 中 Pod 网络通信: ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器(Pod 内的容器是不会跨宿主机的)共享同一…...
若依微服务上传图片文件代理配置
在使用若依微服务文件上传时候,文件上传成功会上传到D:/ruoyi/uploadPath目录下。默认使用9300端口进行访问图片文件,现在我想把它代理到80端口应该怎么做呢? 配置前:http://localhost:9300/statics/2023/09/24/test.jpg 配置后:http://localhost/statics/2023/09/24/test…...
物联网与 Linux 的相爱相生
Linux 无疑将在物联网中扮演一个关键角色,但是其光彩将与其它的一些分享。 随着 Canonical 重新关注于赢利和新技术,我们中的一些人发现我们正在思考 Linux 未来将走向何方,IoT(物联网)是否是 Linux 的未来࿱…...
python自动化测试(一):操作浏览器
通过Python的代码去操作浏览器的操作 目录 目录 1、导入自动化模块 2、定义打开的浏览器驱动、声明一个url变量保存打开的地址 3、使用函数:driver.get(url)打开浏览器的指定页面 4、最大化浏览器窗口:driver.maximize_window() 5、添加全局的等待…...
NReco.LambdaParser使用案例
使用案例集合: private async void RuleEngine_Click(object sender, EventArgs e){#region 获取变量string expression this.Rule.Text.Trim();string pattern "\$(.*?)\$";MatchCollection matches Regex.Matches(expression, pattern);foreach (Ma…...
苹果IOS安装IPA, plist形式 Safari 浏览器点击安装
快速链接 苹果开发者账号链接 网址: https://developer.apple.com/account 苹果应用上架链接 网址: https://appstoreconnect.apple.com/ 应用证书文件及打包 参考教程: 最新uniapp打包IOS详细步骤(2022) 证书在线制作工具 网址: https://app.121xuexi.…...
Django 注册及创建订单商品
注册功能的实现 user/views from rest_framework.generics import GenericAPIView from rest_framework.views import APIViewfrom apps.user.models import User from apps.user.serializers import UserSerializer from utils import ResponseMessage from utils.jwt_auth …...
从微信聊天到在线游戏:聊聊UDP和TCP在你手机App里的那些‘小心思’
从微信聊天到在线游戏:聊聊UDP和TCP在你手机App里的那些‘小心思’ 每天我们都在用手机App聊天、打游戏、看视频,但很少有人注意到这些应用背后隐藏的网络协议选择。为什么微信文字消息总能准确送达,而语音通话偶尔会断断续续?为…...
5个技巧让文件识别效率翻倍:Magika智能检测工具深度解析
5个技巧让文件识别效率翻倍:Magika智能检测工具深度解析 【免费下载链接】magika 项目地址: https://gitcode.com/GitHub_Trending/ma/magika 还在为文件类型识别烦恼吗?传统工具常常误判,而手动检查又太耗时。让我们一起探索Magika—…...
高效掌控暗影精灵设备:开源工具OmenSuperHub的四大突破
高效掌控暗影精灵设备:开源工具OmenSuperHub的四大突破 【免费下载链接】OmenSuperHub 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 告别原厂软件臃肿困扰,体验纯净硬件控制新方式 OmenSuperHub是一款专为惠普暗影精灵笔记本打造…...
专业级跨平台资源下载利器:res-downloader一站式网络资源嗅探解决方案
专业级跨平台资源下载利器:res-downloader一站式网络资源嗅探解决方案 【免费下载链接】res-downloader 资源下载器、网络资源嗅探,支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: http…...
当电力系统遇上MATLAB:手把手玩转SVC设计
基于MATLAB的静止无功补偿系统设计 本设计包括设计报告,仿真工程。 静止无功补偿系统(Static Var Compensator,简称SVC)是一种用于电力系统中动态调节无功功率的装置,主要由以下几个核心组件构成:晶闸管控制…...
FastbootEnhance:Windows平台上最直观的Android刷机工具箱
FastbootEnhance:Windows平台上最直观的Android刷机工具箱 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance 如果你是一位Android发烧友…...
EverythingPowerToys正则表达式搜索:解锁精准文件匹配的强大功能
EverythingPowerToys正则表达式搜索:解锁精准文件匹配的强大功能 【免费下载链接】EverythingPowerToys Everything search plugin for PowerToys Run 项目地址: https://gitcode.com/gh_mirrors/ev/EverythingPowerToys EverythingPowerToys是一款专为Power…...
RSA1 - Writeup by AI
RSA1 - Writeup by AI 1. 题目描述项目内容题目来源Bugku题目类型Crypto (密码学)考点RSA 大数分解、私钥计算题目信息 题目给出了 RSA 加密的三个参数: e 65537 N 1018261336751023520497560395829454421245429586704872293236600679847605951423419167478189648…...
电容器阻抗与ESR频率特性解析:从理论到高频应用实践
1. 电容器阻抗与ESR的基础原理 当你第一次听说电容器有"阻抗"和"ESR"时,可能会觉得这是两个高深莫测的专业术语。其实理解它们并不难,就像理解水管里的水流一样直观。想象一下,电容器就像是一个储水罐,而阻抗…...
告别答辩夜战!Paperxie AI PPT:10 分钟把论文变「导师满分」学术演示稿
paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/ppt/createhttps://www.paperxie.cn/ppt/create 又到毕业季,当实验室的灯光熬到凌晨,当电脑里的论文终稿定格在最后一页,无数毕业生却陷入…...
