JAVA学习14——异常

news2024/9/22 4:07:01

目录

异常:

1.异常基本介绍:

2.异常体系图:

3.五大运行时异常:

(1)NullPointerException空指针异常:

(2)AirthmetiException数字运算异常:

(3)ArrayIndexOutOfBoundsException数组下标越界异常:

(4)ClassCastException类型转换异常:

(5)NumberFormatException数字格式不正确异常:

4.异常处理机制:

(1)try-catch-finally(快捷键ctrl+alt+t)

(2)throws:

(3)自定义异常:

1.自定义的步骤:

2.throw和throws的区别:


异常:

1.异常基本介绍:

(1)概念:

Java语言中,将程序执行中发生的不正常情况称为异常。

(2)异常分类:

执行过程中所发生的异常事件可以分为两大类:

2.异常体系图:

3.五大运行时异常:

(1)NullPointerException空指针异常:

当应用程序试图在需要对象的地方使用null时,抛出该异常。

(2)AirthmetiException数字运算异常:

当出现异常的运算条件时,抛出该异常。

(3)ArrayIndexOutOfBoundsException数组下标越界异常:

用非法索引访问数组时抛出的异常,如果索引为负或大于等于数组大小,则该索引为非法索引。

(4)ClassCastException类型转换异常:

当试图将对象强制转换为不是实例的子类时,抛出该异常。

(5)NumberFormatException数字格式不正确异常:

当程序试图将字符串转换为一种数值类型,当该字符串不能转换为适合格式时,抛出该异常。

4.异常处理机制:

(1)try-catch-finally(快捷键ctrl+alt+t)

程序员在代码中捕获发生的异常,自行处理。

  • 如果发生异常了,则异常后面的代码不会执行,直接进入catch块。
  • 如果异常没有发生,则顺序执行try的代码块,不会进入catch。
  • 不管异常是否发生,finally代码块内的代码都执行,finally代码块中的语句在try-catch代码块中的语句执行完之前执行完。
  • 可以有多个catch语句,捕获不同的异常,要求父类异常在后,子类异常在前。
  • try-catch,相当于没有捕获异常,执行finally后程序会直接退出。应用场景:执行一段代码,不管是否发生异常,都必须执行某个业务逻辑。

(2)throws:

将发生的异常抛出,交给调用者来处理,最顶级的处理者就是jvm。

  • 对于编译异常,程序中必须处理,比如try-cach或者throws
  • 对于运行时异常,程序中如果没有处理,默认就是throws的方式处理。
  • 子类重写父类的方法时,对于抛出异常的规定:子类重写的方法,所抛出的异常类型要么和父类抛出的一致,要么为父类抛出异常的子类型(异常体系图)。

(3)自定义异常:

1.自定义的步骤:
  1. 定义类:自定义异常类名,继承Exception或RuntimeException
  2. 如果继承Exception,属于编译异常。
  3. 如果继承RuntimeException,属于运行异常。
2.throw和throws的区别:

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

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

相关文章

投资海外标的,首选跨境ETF!现在新开佣金低至万0.5!

全球资产配置的利器 随着经济的发展,全球资产配置成为中产阶级的关注方向。目前,全球资产配置的主要渠道包括直接开立境外账户、 QDII 基金、跨境 ETF 等。 现阶段通过跨境 ETF 投资境外股市是最便利、最具效率的方式之一。首先,与直接境外…

Gradle 基础学习(三) 认识Command-Line Interface

Gradle命令行接口 除了IDE外,我们主要通过Gradle命令行接口来运行Gradle任务和管理Gradle项目。 下面是Gradle命令行使用的一些参考,熟悉后建议实际项目中使用Gradle Wrapper,gradle用法都可以替换为gradlew (macOS / Linux) 或gradlew.bat…

LVGL移植到STM32F4

1、LVGL简介 LittlevGL是一个免费的开源图形库,提供了创建嵌入式GUI所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用。 1.1、LVGL特点 强大的构建模组:按钮、图表、列表、滑块、图像等先进的图形:动画、反锯齿…

hadoop学习---基于Hive的数仓搭建增量信息拉链表的实现

拉链表就是SCD2,它的优点是即满足了反应数据的历史状态,又能在最大程度上节省存储。 拉链表的实现需要在原始字段基础上增加两个新字段: start_time(表示该条记录的生命周期开始时间——周期快照时的状态)end_time(该条记录的生命周期结束时…

家政保洁上门预约服务小程序源码系统 带完整的安装代码包以及搭建教程

随着社会的快速发展和人们生活节奏的加快,家政保洁服务已成为现代生活中不可或缺的一部分。为了满足广大用户的需求,罗峰给大家分享一款家政保洁上门预约服务小程序源码系统,该系统不仅提供完整的安装代码包,还附带详细的搭建教程…

ContEA阅读笔记

Facing Changes: Continual Entity Alignment for Growing Knowledge Graphs 面对变化:不断增长的知识图谱的持续实体对齐 Abstract 实体对齐是知识图谱(KG)集成中一项基本且重要的技术。多年来,实体对齐的研究一直基于知识图谱是静态的假设&#xff…

嵌入式学习——C语言基础——day14

1. 共用体 1.1 定义 union 共用名 { 数据类型1 成员变量1; 数据类型2 成员变量2; 数据类型3 成员变量3; .. }; 1.2 共用体和结构体的区别 1. 结构体每个成员变量空间独立 2. 共用体每个成员变量空间共享 1.3 判断内存大小端 1. 内存大端…

从零开始搭建Springboot项目脚手架2:配置文件、返回值、日志等

1、多个环境与配置文件 2、统一返回值 返回值包括两种场景:正常controller的返回、异常发生之后返回 正常controller的返回:通过在controller的默认返回Response实现 异常发生之后返回:通过全局异常处理统一捕获返回 首先创建类StatusCode…

php使用Canal监听msyql

canal需要java8 去官网下载java8 安装JAVA #创建目录 mkdir -p /usr/local/java/ #解压到目录 tar zxvf jdk-8u411-linux-x64.tar.gz -C /usr/local/java/配置环境变量在 /etc/profile 最后加入 export JAVA_HOME/usr/local/java/jdk1.8.0_411 export CLASSPATH.:$JAVA_HOM…

常用六大加密软件排行榜|好用加密文件软件分享

为了保障数据安全,越来越多的企业开始使用文件加密软件。哪款加密软件适合企业哪些办公场景呢? 今天就给大家推荐一下文件加密软件排行榜的前六名: 1.域智盾 这款软件专为企业和政府机构设计,提供全面的文件保护解决方案。 点…

typescript类型基础

typescript类型基础 枚举类型 enum Season {Spring,Summer,Fall,Winter }数值型枚举 enum Direction {Up,Down,Left,Right } const direction:Direction Direction.up每个数值型枚举成员都表示一个具体的数字,如果在定义一个枚举的时候没有设置枚举成员的值&…

InfiniGate自研网关实现三

9.网关注册中心服务初始创建 整理整个网关调用链路流程,梳理核心服务。并完成网关中心简单DDD模型结构工程的搭建,与库表连通可以查询接口映射数据。 在前面我已经开发出了一个初具模型的核心通信组件,那么我该如何使用这个组件呢&#xff…

私域流量引流方式有哪些?

私域流量引流的方法无非是营销渠道投放、各平台KOL投放、自有自媒体平台账号内容引流、线下引流、老客户转介绍裂变等几个方面,下面对各种不同方法进行简单介绍。 1、营销渠道投放:选择广点通、粉丝通、某些app的信息流和dou等大平台自带的推广渠道工具…

【Scala---04】函数式编程 『 函数 vs 方法 | 函数至简原则 | 函数式编程』

文章目录 1. 函数 vs 方法1.1 方法(1) 定义方法(2) 运算符即方法 1.2 函数(1) 定义函数(2) 匿名函数 1.3 方法转为函数1.4 可变参数&默认参数 2. 函数至简原则3. 函数式编程3.1 函数式编程思想3.3 函数柯里化&闭包3.5 递归 & 尾递归 4. 补充4.1 访问元祖元素4.2 &g…

揭秘“循环购”模式:为何商家如此慷慨,消费者又能获利?

亲爱的朋友们,我是吴军。今天,我将为大家揭开一种备受瞩目的商业模式——“循环购”的神秘面纱。你是否也好奇,为何商家愿意在你消费后给予丰厚的回馈,甚至让你在消费过程中还能赚取收益?这种模式的背后到底隐藏着什么…

Excel文件解析---超大Excel文件读写

1.使用POI写入 当我们想在Excel文件中写入100w条数据时,使用XSSFWorkbook进行写入时会发现,只有将100w条数据全部加载到内存后才会用write()方法统一写入,效率很低,所以我们引入了SXXFWorkbook进行超大Excel文件读写。 通过设置 …

IMU在羽球发球力中的应用

在羽毛球运动中,发球不仅是比赛得分的关键,其技术细节更是影响比赛走向的重要因素。近期,来自斯洛伐克和波兰的科研团队利用先进的IMU传感器技术,对顶尖选手的发球技巧进行了深度分析,旨在揭示不同发球方向对上身动作的…

通过线程池开启异步任务 @Async

同步任务: 同步任务是在单线程中按顺序执行,每次只有一个任务在执行,不会引发线程安全和数据一致性等并发问题 同步任务需要等待任务执行完成后才能执行下一个任务,无法同时处理多个任务,响应慢,影响用户体…

《第一行代码》第二版学习笔记(7)——使用通知和摄像头

文章目录 一、使用通知二、调用摄像头 介绍了通知基于8.0的使用方法和如何调用摄像头拍照 一、使用通知 public void onClick(View v) {if (v.getId() R.id.send_notice){Intent intent new Intent(this,NotificationActivity.class);PendingIntent pi PendingIntent.getAct…

如何快速找出文件夹里的全部带有英文纯英文的文件

参考此文章:如何快速找出文件夹里的全部带有中文&纯中文的文件 只需要根据自己的需求,把下面相关的设置调整好即可