java异常的分类(常见的异常类型)

news2024/11/24 6:45:21

异常的分类

1. 编译时异常

在程序编译期间发生的异常,称为编译时异常,也称为受检查异常(Checked Exception)

public class Person {
    int age;
    private String name;
    private String gender;

    // 想要让该类支持深拷贝,覆写Object类的clone方法即可
    @Override
    public Person clone() {
        return (Person) super.clone();
    }
}

报错
在这里插入图片描述

我们会发现这段代码实际在IDEA写完后clone.()处会出现下划的红色波浪线
在这里插入图片描述这表明在这个异常在编译时就会出错,前面几个异常源码写在IDEA里面是不会有下划线的所以前面的是运行时异常,而这个就是编译时异常,但是编译时异常是可以解决的,可以通过throws关键字解决
就像下面这样

public class Person {
    int age;
    private String name;
    private String gender;
    
    // 想要让该类支持深拷贝,覆写Object类的clone方法即可
    @Override
    public Person clone() throws CloneNotSupportedException {
        return (Person) super.clone();
    }
}

如下图就没有报错了
在这里插入图片描述

2.运行时异常

在程序执行期间发生的异常,称为运行时异常,也称为非受检查异常(Unchecked Exception)RunTimeException以及其子类对应的异常,都称为运行时异常。比如:NullPointerException、ArrayIndexOutOfBoundsException、ArithmeticException。

编译时出现的语法性错误,不能称之为异常。例如忘记写分号,这个也会出现下划线,但是这个不能称之为异常 此时编译过程中就会出错, 这是 “编译期” 出错。而运行时指的是程序已经编译通过得到class 文件了, 再由 JVM 执行过程中出现的错误.

异常的继承关系

异常既然是类,那么异常就是有继承关系的
如下图
在这里插入图片描述

  1. Throwable:是异常体系的顶层类,其派生出两个重要的子类, Error 和 Exception
  2. Error:指的是Java虚拟机无法解决的严重问题,比如:JVM的内部错误、资源耗尽等,典型代表:StackOverflowError和OutOfMemoryError,一旦发生回力乏术。
  3. Exception:异常产生后程序员可以通过代码进行处理,使程序继续执行。我们平时所说的异常就是Exception。在这里插入图片描述
    java中所有的错误和异常均继承于Throwsable类,我们双敲shift进入搜索框,输入Throws类,如下图
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/f083b757325147f181ffbefb491ad64b.png

双击Throwsable类就能找该类的定义
如图
在这里插入图片描述

Error 错误

比如说,我们在没有终止条件的递归中就会出现StackOverflowError栈溢出错误

public class Test {
    public static  void func(){
        func();
    }
    public static void main(String[] args) {
        func();
    }
}

在这里插入图片描述

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

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

相关文章

C语言—字符函数和字符串函数

字符函数和字符串函数 strlenstrcpystrcatstrcmpstrncpystrncatstrncmpstrstrstrtokstrerrorperror字符分类函数字符转换函数memcpymemmovememmcmpmemset C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在 常量字符…

ChatGPT最强对手Claude如何无门槛使用?

Claude,一个冉冉升起的新星,由 chatgpt 团队出来的员工开发的,由于他们对模型的一些发展理念不同,单独融资创建了 Claude,总体来说表现可圈可点,但整体看可能还不如 chatgpt4.0。 ChatGPT 眼中的 Claude C…

【产品应用】一体化电机在卡盘设备中的应用

在现代工业生产中,自动化程度的提高和生产效率的提升对于生产设备的要求也越来越高。卡盘设备作为自动化生产线中的重要组成部分,其设计和制造也必须适应现代工业的需求。一体化电机在卡盘设备中的应用,不仅可以提高生产效率和精度&#xff0…

线程状态是五种还是六种

从操作系统层面上描述线程状态 初始状态:仅仅是语言层面创建了线程对象,还没有与操作系统相关联.比如new 了一个Thread对象还没有调用start方法可运行状态:仅仅是语言层面创建了线程对象,还没有与操作系统相关联.比如new 了一个Thread对象还没有调用s…

微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建

微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动构建、编译、…

【数学杂记】表达式中的 s.t. 是什么意思

今天写题的时候遇见了这个记号:s.t.,查了一下百度。 s.t.,全称 subject to,意思是“使得……满足”。 比如这个: 意思是存在 i i i,使得 i i i 满足 A i ≠ B i A_i\neq B_i Ai​Bi​. 运用这个记号…

MySQL面试题1(索引)

目录 1.MySQL如何实现索引机制 1.1InnoDb与MyISAM索引实现区别是是什么? 1.2一个表中如果没有创建索引,还会创建B树么? 2.说一下B树索引实现原理(数据结构) 2.1聚簇索引和非聚簇索引在B树实现区别是什么&#xff1…

【Python每日一练】总目录(更新至2023.5.12)

Python 2023.05 2023.05.11-2023.05.12 20230512 1. 跳跃游戏 V 2. 跳跃游戏 VI 3. 跳跃游戏 VII 20230511 1. 跳跃游戏 Jump Game I 2. 跳跃游戏 Jump Game II 3. 跳跃游戏 Jump Game III 4. 跳跃游戏 Jump Game IV 2023.05.01-2023.05.10 20230510 1. 石子游戏 Ston…

[googletest] --- 简易使用教程

1 googletest下载/官方sample分析 1.1 googletest源码下载编译 源码下载编译 // 下载 git clone https://github.com/google/googletest // 现在官方已经把 gtest 和 gmock 一起维护,所以这个 git 仓库还包含了 gmock。// 编译、安装 cd googletest-main mkdir b…

【申请教程】ChatGPT访问互联网插件

https://openai.com/blog/chatgpt-plugins 大家好,我是章北海mlpy 申请ChatGPT插件很久了,一直没下文 最近看到两种套路,我早上试了一下,看能否快速成功吧。 方法一:用ChatGPT帮忙写申请文案 [外链图片转存失败,源…

大数据如何助力营销(2)用户画像

用户画像是指根据用户的数据,构建出用户的特征和兴趣,从而对用户进行分类和个性化的过程。用户画像可以帮助营销人员更有效地触达目标客户,提高营销效果和转化率。 用户画像的价值 用户画像的价值主要体现在以下几个方面: 提升用…

IP协议介绍

文章目录 一、IP协议的基本认识二、IP的协议头格式三、网段划分四、特殊的IP地址五、IP地址的数量限制六、私有IP地址和公网IP地址 一、IP协议的基本认识 IP在网络分层中属于网络层协议,传输层协议里的TCP协议解决的是可靠性问题,网络层协议里的IP协议能…

VScode自动滚屏cin、input输入问题解决方法

文章目录 前言一、输出自动滚屏二、解决cin或input之类的输入问题总结 前言 VScode 是一个轻量的文本编辑器,微软出品。很多人把它作为主要开发工具写代码,因为它几乎是万能的,想要什么功能就装什么插件,可以适用于几乎任何编程语…

如何和AI聊天

AI产品工具目录:AI产品目录 Prompt 在和AI聊天时,你得表明你需要啥,并且描述的越精确,AI回答的就越贴近你的预期,简单的对话,可以自己尝试,但是如果想做应用级别的就得学习这种聊天技术&#…

Flask celery异步发送邮件

首先安装celery pip install celery安装redis 一、Redis for Windows下载 之前微软维护了一份Windows版本的Redis,但是版本停留在3.2,并且也关闭了项目更新渠道。这里我们使用另外一位大神提供的Windows Redis,更新及时,用户量也…

[VAE] Auto-Encoding Variational Bayes

直接看paper看得云里雾里,李沐视频一语道破天机(建议从30min左右开始看GAN到Diffusion的串讲)。VAE的核心思路就是下面: 做生成,其实就是从随机向量(z)到目标图像(x)的过…

研报精选230512

目录 【行业230512山西证券】有色金属行业周报:基本金属普跌,锂价持续回弹 【行业230512湘财证券】新材料行业周报:五一前后各板块震荡下行,节后稀土价格跌后企稳,锂源现止跌迹象 【行业230512山西证券】基础化工2022年…

obj导入unity顶点数量改变

obj文件,是个cube,里面有8个顶点12个面。 # 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware # 创建的文件:11.04.2023 13:05:22# # object Box001 #v -15.0000 -15.0000 15.0000 v -15.0000 -15.0000 -15.0000 v 15.0000 -15.0000 -15.0…

C高级-day(5)-(分支语句、循环结构、函数....)

题目一、 有m1.txt m2.txt m3.txt m4.txt,分别创建出对应的目录,m1 m2 m3 m4 并把文件移动到对应的目录下 #! /bin/bashtouch m1.txt m2.txt m3.txt m4.txt for i in seq 1 1 4 domkdir m$imv m$i.txt m$i done 题目二、 使用break关键字打印九九乘法…

BERT-pytorch源码分析

​学习bert可以下载一些数据集练练手,目前打算选择官网给出GLUE的数据集。 bert整体代码框架结构如下: 首先从main文件开始解读,打开__main__.py。这里面只有import导入语句和一个train函数。 train函数里面首先是对一些路径参数的填写&a…