异常的学习
异常分为编译时期异常与运行时期异常
编译时期异常运行前必须处理,否则代码报错
除了RuntimeException和他的子类,其他都是编译时异常
运行时期异常运行时报错,一般是由参数传递错误导致的报错
异常的作用:
1.异常使用来查询bug的关键参考信息
2.异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况
异常的处理方法
1.虚拟机默认的处理方式
把异常的名称,原因,出现位置输出在控制台,并停止进程
2.自己处理(捕获异常)
格式:
try{
可能出现的异常的代码;
} catch(异常类名 变量名){
异常的处理代码;
}
目的:代码出现异常时,可以继续运行
int[] arr = {1, 2, 3, 4, 5};try {//可能出现异常的代码System.out.println(arr[10]);//此处出现了异常。就会在这里创建一个 ArrayIndexOutOfBoundsException对象//new ArrayIndexOutOfBoundsException()//拿着这个对象到catch里面的小括号里比,哭哭小括号中的变量是否可以接收//如果能接收,就表示该异常被捕获,执行catch里的代码//执行完毕后继续执行try catch体系下面的代码
} catch (ArrayIndexOutOfBoundsException e) {//如果出现了异常该如何处理System.out.println("索引越界了");
}
System.out.println("?????????");
如果try中可能会遇见多个问题,怎么执行?
碰到第一个异常就会跳转到catch,不会运行try接下来的语句
如果会有多个异常,就应该有多个catch接受
如果这些异常存在父子关系的话,父类一定要写在下面
3.交给调用者
异常类常用的方法
Throwable的成员方法
//获取异常信息 /* String message = e.getMessage();System.out.println(message);*//* //打印异常String s = e.toString();System.out.println(s);*///打印异常,仅仅是打印信息,不会停止程序运行e.printStackTrace();
抛出处理
throws
注意:写在方法定义出,表示声明一个异常,告诉调用者,使用本方法可能会有哪些异常
public void 方法() throws 异常1,异常2.。。{
}
编译时异常:必须要写
运行时异常:可以不写
public static void main(String[] args) {/** throws* */int[] arr = {};try {System.out.println(getMax(arr));} catch (NullPointerException e) {System.out.println("空指针");} catch (ArrayIndexOutOfBoundsException e) {System.out.println("索引越界");}System.out.println("????");}public static int getMax(int[] arr) throws NullPointerException, ArrayIndexOutOfBoundsException {if (arr == null) {//手动创建一个异常对象,并把这个异常交给调用者处理throw new NullPointerException();}if (arr.length == 0) {throw new ArrayIndexOutOfBoundsException();}int max = arr[0];for (int i = 0; i < arr.length; i++) {if (arr[i] > max) {max = arr[i];}}return max;}
}
throw
注意:写在方法内,结束方法,手动抛出异常对象,交给调用者,方法中下面的代码不再执行了
public void 方法(){
throw new 异常();
}
自定义异常
1.定义异常类
2.写继承关系
3.写空参构造
4.带参构造
public class NameFormatException extends RuntimeException{//技巧//NameFormat当前异常名字//Exception表示当前是个异常类//运行时异常RuntimeEcxeption 核心 参数错误导致的问题//编译时异常Exception 核心 提醒程序员检查本地信息public NameFormatException() {}public NameFormatException(String message) {super(message);}
}
public void setName(String name) {int len = name.length();if (len < 3 || len > 10) {throw new NameFormatException(name+" 格式有误!");}this.name = name;
}
相关文章:
异常的学习
异常分为编译时期异常与运行时期异常 编译时期异常运行前必须处理,否则代码报错 除了RuntimeException和他的子类,其他都是编译时异常 运行时期异常运行时报错,一般是由参数传递错误导致的报错 异常的作用: 1.异常使用来查询b…...
【洛谷 P1101】单词方阵 题解(深度优先搜索)
单词方阵 题目描述 给一 n n n \times n nn 的字母方阵,内可能蕴含多个 yizhong 单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 8 8 8 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此…...
教师减负神器
在传统的成绩管理模式中,教师需要手动输入、整理、分析成绩数据,工作量大且繁琐。这不仅耗费了教师大量的时间和精力,还容易出现错误。为了解决这个问题,我们可以通过各种代码和Excel来实现学生自助查询成绩的功能。 一、建立成绩…...
Web 开发之前的一些话
我主要是对单页面进行开发,因而VUEFlask的搭配足以满足我的需求; VUE Vue.js - 渐进式 JavaScript 框架 | Vue.js Element-UI Element - The worlds most popular Vue UI framework FLASK 欢迎来到 Flask 的世界 — Flask中文文档(2.3.x)...
git快速入门!!! git的常用命令!!!
git快速入门 git的常用命令1. 初始化一个新的 Git 仓库2. 添加文件到暂存区3. 提交更改4. 查看当前分支的状态5. 创建并切换到新的分支6. 切换回之前的分支7. 合并分支8. 拉取远程仓库的更新9. 推送本地仓库的更新 git remote -v是什么git fetchclone命令详解push指定的分支git…...
C++并发编程实战——01.并发与并行
文章目录 并发并行及其使用原因并发与并行使用与不使用并发的原因C多线程支持 并发并行及其使用原因 本书相关 github翻译地址本书源码下载地址第一版github 翻译地址英文原版PDF不错的笔记所有实例的源代码,可在出版商的网站上进行下载github上下载源码 路线图 …...
PLC如何远程控制、调试?贝锐蒲公英二层组网功能一招搞定
在制造、交通、能源、采矿等领域,工业物联网是热门话题,各类采集、控制器、控制传感器通过网络互联,实现信息实时共享、交互后,不仅能快速了解生产过程数据,还能用于设备远程、调试维护等场景,对优化生产过…...
【大数据】-- flink kubernetes operator 入门与实践
课程链接:https://edu.csdn.net/course/detail/38831 目录 课程链接:https://edu.csdn.net/course/detail/38831https://edu.csdn.net/course/detail/38831 一、你将收获...
网络安全在代理技术中的实现与应用
随着互联网技术的飞速发展,网络安全日益受到人们的重视。在这个背景下,代理技术成为了网络安全实现的重要手段之一。本文将针对 SOCKS5 代理、SK5 代理、IP 代理等代理技术,探讨它们在网络安全和爬虫应用中的重要性,并介绍 HTTP 协…...
Nginx搭配负载均衡和动静分离:构建高性能Web应用的完美组合
目录 前言 一、Nginx简介 1.Nginx是什么 2.Nginx的特点 3.Nginx在哪使用 4.如何使用Nginx 5.Nginx的优缺点 6.Nginx的应用场景 二、负载均衡和动静分离 1.负载均衡 2.动静分离 三、Nginx搭载负载均衡并提供前后端分离后台接口数据 1.Nginx安装 2.tomcat负载均衡 …...
windows 运行 Mysql Command Line Client 自动关闭闪退原因分析
目录 原因分析一 原因分析二 原因分析三 第一次使用 MySQL Command Line Client 有可能输入密码后一按下回车键,程序窗口就自动关闭,出现闪退现象。本节主要分析产生闪退现象的原因以及如何处理这种情况。 原因分析一 首先可以查看程序默认执行文件…...
在CATIA工程制图中自动生成尺寸
然后微调即可...
蓝桥杯 (C++ 求和 等差数列 顺子日期 灌溉)
目录 1、求和 题目: 思路: 代码: 2、等差数列 题目: 思路: 代码: 3、顺子日期 题目: 思路: 代码: 4、灌溉 题目: 代码: 1、求和…...
Spring AOP基于XML方式笔记整理
XML AOP 加载流程 ClassPathXmlApplicationContext#refreshAbstractApplicationContext#obtainFreshBeanFactoryAbstractRefreshableApplicationContext#refreshBeanFactory创建DefaultListableBeanFactoryAbstractApplicationContext#loadBeanDefinitions(beanFactory)创建Xm…...
Docker HTTP(S) Proxy代理方式连接互联网
Docker HTTP(S) Proxy 是一种在 Docker 容器内部设置 HTTP(S) 代理的方法,以便于容器内的应用程序可以方便地通过代理访问互联网。设置 HTTP(S) 代理的方法主要有两种:使用 Dockerfile 配置和在使用 docker run 时添加参数。 以下是使用 Docker HTTP(S) …...
华纳云:centos系统中怎么查看cpu信息?
在CentOS系统中,我们可以使用一些命令来查看CPU的详细信息。下面介绍几个常用的命令: 1. lscpu lscpu命令可以显示CPU的架构、型号、核心数、线程数、频率等信息。 # lscpu 执行以上命令后,会输出类似以下内容: 2. cat /proc/…...
如何选择微信管理系统?
如何选择微信管理系统? 1、不用下载安装软件,不越狱不刷机 2、不绑定手机或电脑,不对电脑或手机做限制,也不受电脑、手机关闭、关机影响 3、能更新迭代,不限制版本 4、使用安全登录,保障账号安全的 5、不用…...
文字的力量
不知道以前的时代的年轻人有没有这样的感受。现在我觉得自己是不是出现了认知偏差,发现在很多描写现在的二十几岁年轻人的成长经历的文字下面都会出现很多共鸣,包括我自己也有,就让我有一个错觉:是不是中国所有的和我同龄的年轻人都是这样过来…...
荒野大镖客emp.dll文件丢失的怎么办,快速修复游戏dll问题
在玩荒野大镖客这款游戏的过程中,我遇到了一个令人困扰的问题——emp.dll文件丢失。emp.dll是荒野大镖客游戏中的一个动态链接库文件,它负责管理游戏中的一些功能模块。当这个文件丢失时,游戏可能无法正常运行,导致一些功能无法使…...
力扣labuladong——一刷day20
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言差分数组工具类一、力扣370. 区间加法二、力扣1109. 航班预订统计三、力扣1094. 拼车 前言 差分数组的主要适用场景是频繁对原始数组的某个区间的元素进行增减…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
在Spring Boot中集成RabbitMQ的完整指南
前言 在现代微服务架构中,消息队列(Message Queue)是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个流行的消息中间件,支持多种消息协议,具有高可靠性和可扩展性。 本博客将详细介绍如何在 Spring Boot 项目…...
