JAVA笔记十六

十六、异常Exception

1.概念

异常:非正常情况,包括空的引用、数组下标越界、内存溢出等

Java提供了异常对象描述这类异常情况。

Java提供了异常机制来进行处理,通过异常机制来处理程序运行期间出现的错误可以更好地提升程序的健壮性

2.异常处理基本流程

(1)try{

}catch(......){

}

异常处理过程:

·当执行过程中遇到异常时,系统会抛出异常(对象)

·catch()块捕获异常并处理

·没有被捕获的异常最终都将由默认处理程序进行处理

注意:

·由try保护的语句必须使用{}括起来,catch也不能省略{}

·try、catch不能单独使用

·try块发生异常之后直接进入catch块,执行完catch块后也不会返回到try块

(2)try{

}catch(......){

}catch(......){

}

注意:

·try及其catch语句构成了一个单元catch子句的作用域被限制在由之前try语句指定的那些语句

·执行了一条catch语句之后,会忽略其他catch语句,并继续执行try/catch块后面的代码

·当使用多条catch语句时,要重点记住异常子类必需位于它的所有超类之前

(3)try{

}finally{

}

注意:

·不管是否有异常抛出,都会执行finally块

·最多只能有一个finally块

·每个try语句至少需要有一个catch子句或一个finally子句

3.嵌套的try语句

一个try语句可以位于另一个try语句中

4.异常类型

(1)异常继承体系

(2)异常分类

·运行时异常(unchecked异常):所有RuntimeException类及其子类的实例

不要求必须进行异常捕获处理或抛出声明

·非运行时异常(checked异常)(编译异常):运行时异常之外的异常

必须显式处理异常

处理方式:

·使用try...catch块来捕获异常,然后在对应的块来修复异常

·定义方法时抛出异常

(3)常用异常

java.lang包中定义的运行时异常

异 常

含 义

ArithmeticException

算术错误,例如除零

ArrayIndexOutOfBoundsException

数组索引越界

ArrayStoreException

使用不兼容的类型为数组元素赋值

ClassCastException

无效的转换

EnumConstantNotPresentException

试图使用未定义的枚举值

IllegalArgumentException

使用非法实参调用方法

IllegalMonitorStateException

非法的监视操作,例如等待未锁定的线程

IllegalStateException

环境或应用程序处于不正确的状态

IllegalThreadStateException

请求的操作与当前线程状态不兼容

IndexOutOfBoundsException

某些类型的索引越界

NegativeArraySizeException

使用负数长度创建数组

NullPointerException

非法使用空引用

NumberFromatException

字符串到数字格式的无效转换

SecurityException

试图违反安全性

StringIndexOutOfBounds

试图在字符串边界之外进行索引

TypeNotPresentExcepton

未找到类型

UnsupportedOpetationException

遇到一个不支持的操作

java.lang包中定义的非运行时异常

异 常

含 义

ClassNotFoundException

未找到类

CloneNotSupportedException

试图复制没有实现Cloneable接口的对象

IllegalAccessException

对类的访问被拒绝

InstantiationException

试图为抽象类或接口创建对象

InterruptedException

一个线程被另一个线程中断

NoSuchFieldException

请求的字段不存在

NoSuchMethodException

请求的方法不存在

ReflectiveOperationException

与反射相关的异常的子类(该异常是由JDK 7新增的)

常用的非运行时异常

异 常

含 义

IOException

输入输出异常

FileNotFoundException

文件不存在异常

SQLException

SQL异常

5.throw

使用throw语句显式地抛出一个异常在throw语句之后的执行流会立即停止,所有后续语句都不会执行然后检查最近的try块,查看是否存在和异常类型相匹配的catch语句

6.throws

如果方法可能引发一个Checked异常,则必须在方法声明中提供throws子句列出了方法可能抛出的异常类型

throw与throws的区别:

·throw抛出异常对象,应用在代码块内

·throws声明可能抛出的异常类型,在定义方法后面

·如果方法内使用throw抛出Checked异常对象,又没有进行try catch处理,则该方法定义同时需要使用throws指明抛出异常类型

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

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

相关文章

C# 贪吃蛇游戏

贪吃蛇游戏可分为手动玩法和自动玩法 冯腾飞/贪吃蛇

钡铼网关实时数据互联,加速IEC104与MQTT云平台对接

随着工业4.0时代的到来,电力系统中的数据采集、监控与远程控制需求日益增长。IEC 104(IEC 60870-5-104)作为国际电工委员会(IEC)制定的电力自动化通信协议,广泛应用于电力系统的状态监测、数据采集和设备控…

SqlSugar删除没有定义主键的实体类对应的数据库表数据

一般而言,使用SqlSugar的DbFirst功能创建数据库表实体类时,如果数据库表有主键,生成的实体类对应属性也会标识为主键,如下图所示。   但有时候生成的实体类没有自动配置主键,这时可以通过以下方式进行删除操作&…

Flicker检测探头

Flicker检测探头是一种用于检测显示屏(如LCD、OLED等)闪烁现象的设备。以下是对Flicker检测探头的一些详细介绍: 一、功能概述 Flicker检测探头主要用于测量和校正显示屏的闪烁(Flicker)现象以及亮度。闪烁是显示屏在…

CS001-32-ddgi

border扩充 参考:https://zhuanlan.zhihu.com/p/507469990 Probe irradiance/distance border update,由于后续采样这两张纹理使用的是bilinearSampler,所以需要对边界不全以保证采样正确性,补充边界的方法如图: C#申请…

机器学习笔记 第一章绪论

1.1 基本术语 假设收集一批关于西瓜的数据,如(色泽青绿;根蒂蜷缩;敲声浊响).....这组记录的集合称为一个“数据集”,其中每条记录是关于一个事件或对象的描述,称为一个“示例”或“样本”&…

《2024新质生产力引领下十大重点产业趋势解读--大模型篇》,深剖当下爆火的大模型产业!

01 报告导读 “新质生产力”重要性再提升。 近日,作为热词的“新质生产力”再度被多次提及,“新质生产力”这一概念近年来在经济和社会发展中被频繁提及,它指的是通过创新驱动,利用新技术、新业态、新模式推动生产力发展的新形态…

Zookeeper入门篇,了解ZK存储特点

Zookeeper入门篇,了解ZK存储特点 前言一、为什么要用 Zookeeper?二、Zookeeper存储特色1. 树状结构2. 节点类型 三、存储位置1. 内存存储1. DataTree2. DataNode 2. 硬盘存储1. 事务日志2. 快照 前言 继上次说完 Zookeeper 的安装后,已经过去…

学习笔记之Java篇(0725)

p this 普通方法中,this总是指向调用该方法的对象。 构造方法中,this总是指向正要初始化的对象。 this()调用必须重载的构造方法,避免相同地址初始化代码,但只能在构造方法中用,比企鹅必须位…

【Linux】进程IO|重定向|缓冲区|dup2|dup|用户级缓冲区|模拟缓冲区

目录 前言 重定向 实验一 为什么log.txt文件的文件描述符是1 为什么向stdout打印的信息也出现在文件中 实验二 用户级缓冲区 为什么要有用户级缓冲区 系统调用 dup 为什么close(fd1)之后还能向log.txt写入数据? dup2 缓冲区 观察现象 测试1 测试2 测…

【专题】2024年云计算白皮书报告合集PDF分享(附原数据表)

原文链接:https://tecdat.cn/?p37112 2023年全球云计算市场显著增长,预计将持续繁荣至2027年突破万亿美元,中国市场同样保持强劲势头,预计也将大幅跃升。国内云计算经过十余年发展,虽取得显著进展,但在资…

高温天消暑需求暴涨,益民一厂产线全开,光明冷饮销量猛增

天气炎热,带动了冷饮销量直线上升,上海地区的冷饮日销量达到了7到8万箱,再创历史新高,作为代表国潮经典的冷饮品牌——光明冷饮也成为了人们夏日消暑的优选。2024年7月23日,上海广播电视台新闻综合频道《新闻夜线》栏目…

谷粒商城实战笔记-64-商品服务-API-品牌管理-OSS前后联调测试上传

文章目录 1,拷贝文件到前端工程2,局部修改3,在品牌编辑界面使用上传组件4,OSS配置允许跨域5,测试multiUpload.vue完整代码singleUpload.vue完整代码policy.js代码 在Web应用开发中,文件上传是一项非常常见的…

单元测试--Junit

Junit是Java的单元测试框架提供了一些注解方便我们进行单元测试 1. 常用注解 常用注解&#xff1a; TestBeforeAll&#xff0c;AfterAllBeforeEach&#xff0c;AfterEach 使用这些注解需要先引入依赖&#xff1a; <dependency><groupId>org.junit.jupiter<…

Linux开启coredump

在Linux系统中&#xff0c;C/C程序崩溃是常见的问题之一。Coredump是指当一个程序崩溃时&#xff0c;系统把程序运行时的内存数据以二进制文件的形式保存下来&#xff0c;以便程序开发者进行崩溃分析。本文将介绍如何开启并配置Coredump 1、查看并配置coredump 在Linux系统中…

html+css前端作业 王者荣耀官网1个页面(带报告)

htmlcss前端作业 王者荣耀官网1个页面&#xff08;带报告&#xff09; 下载地址 https://download.csdn.net/download/qq_42431718/89575045 目录1 目录2 项目视频 王者荣耀首页1个页面&#xff08;无js&#xff09; 页面1

Android statsd 埋点简析

源码基于&#xff1a;Android U 0. 前言 最近在研究 Android 自带的系统数据指标采集功能&#xff0c;框架依旧很严谨、完美&#xff0c;这里做个分享。 1. Android S 之后变化 stats 的代码从 framework 或 system/core 中转移到了 packages/modules/StatsD 目录中。 2. 框架…

基于PSO粒子群优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 粒子群优化算法&#xff08;PSO&#xff09; 4.2 分组卷积神经网络&#xff08;GroupCNN&#xff09; 4.3 PSO优化GroupCNN 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行…

算法第十五天:leetcode19.删除链表的倒数第N个节点

一、删除链表的倒数第N个节点的题目描述与链接 19.删除链表的倒数第N个节点的链接如下表所示&#xff0c;您可直接复制下面网址进入力扣学习&#xff0c;在观看下面的内容之前您一定要先做一遍哦&#xff0c;以便让我印象更深刻&#xff01;&#xff01;!https://leetcode.cn/p…