JavaSE学习值之--认识异常(上)

简介: JavaSE学习值之--认识异常

💕"有效知识的前提是承认知识边界,承认我们对边界那边的一切无可奉告。"💕

作者:Mylvzi

文章主要内容:JavaSE学习值之--认识异常

一.什么是异常?

异常就是程序在运行的时候产生的不正常的行为  小细节没注意到,发生了小的错误,比如:

1.算数异常

System.out.println(10/0);

2.空指针异常  null.length

int[] arr = null;
        System.out.println(arr.length);

3.数组越界异常

int[] arr = new int[3];
        System.out.println(arr[5]);

 

 可见Java中java中不同类型的异常,都有与其对应的类来进行描述,实际上Java中的异常是一个大的体系

二.异常的体系:

异常它是由编译器识别并给出的,证明其存在于编译器所自带的库文件中,应该是一个类

1. Throwable:

 是异常体系的顶层类,其派生出两个重要的子类, Error 和 Exception

2. Error:

 指的是Java虚拟机无法解决的严重问题,比如:JVM的内部错误、资源耗尽等,典型代表: StackOverflowError和OutOfMemoryError,一旦发生回力乏术。(递归调用时)

3. Exception:

 异常产生后程序员可以通过代码进行处理,使程序继续执行。比如:感冒、发烧。我们平时所说 的异常就是Exception。

三.异常的分类:

 主要是分为两大类

  • 运行时异常(不受查异常)

RuntimeException()

  • 编译时异常(受查异常)

1. RunTimeException 包括他的所有子类

在程序执行期间发生的异常,称为运行时异常,也称为非受检查异常(Unchecked Exception)

注意:

 在编写代码过程中出现的语法错误不是运行时异常,比如把main写成了mian,编译器在编译的时候就会报错,这叫错"编译期错误",而运行时异常的产生是所写代码已经经过编译生成.class文件了,再交由JVM运行时产生的错误

补充:RuntimeException的子类

2.编译时异常

 在编译的时候就会发生的异常,又称作受查异常(Checked Exception)

比如之前实现的Cloneable接口

class Stu implements Cloneable {
    String name;
    int age;
    public Stu(String name, int age) {
        this.name = name;
        this.age = age;
    }
    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
    @Override
    public String toString() {
        return "Stu{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
public class Test1 {
    public static void main(String[] args){
        Stu stu = new Stu("lvzi",18);
        Stu stu2 =(Stu) stu.clone();
        System.out.println(stu2);
}

之前提到,必须在main方法的签名中声明抛出异常,否则会出现异常

这种在编译阶段就报错的异常叫做编译时异常,又叫做受查异常(Checked Exception)

JavaSE学习值之--认识异常(下)+https://developer.aliyun.com/article/1413513


目录
相关文章
|
物联网 5G
Wi-Fi 7:主要功能、优势和与前代的改进
【8月更文挑战第23天】
1116 0
|
9月前
|
SQL 存储 分布式计算
Apache Doris 2.1.8 版本正式发布
该版本持续在湖仓一体、异步物化视图、查询优化器与执行引擎、存储管理等方面进行改进提升与问题修复,进一步加强系统的性能和稳定性,欢迎大家下载体验。
253 13
|
存储 NoSQL Java
【面试宝藏】Redis 常见面试题解析
Redis 是内存数据结构存储系统,用作数据库、缓存和消息中间件,支持字符串、哈希、列表等数据类型。它的优点包括高性能、原子操作、持久化和复制。相比 Memcached,Redis 提供数据持久化、丰富数据结构和发布/订阅功能。Redis 采用单线程模型,但通过 I/O 多路复用处理高并发。常见的面试问题涉及持久化机制、过期键删除、回收策略、集群和客户端等。
331 4
|
canal 搜索推荐 关系型数据库
学成在线笔记+踩坑(10)——课程搜索、课程发布时同步索引库。
课程搜索、使用XXL-JOB实现课程发布时同步ES索引库
学成在线笔记+踩坑(10)——课程搜索、课程发布时同步索引库。
|
12月前
|
Rust 前端开发 iOS开发
Tauri 开发实践— Tauri 工程搭建
本文首发于微信公众号“前端徐徐”,介绍了在 macOS 环境下使用 Rust 和 Tauri 构建跨平台桌面应用的过程。首先需安装 Rust 及系统依赖,参考链接:[Rust 入门](https://www.rust-lang.org/zh-CN/learn/get-started) 和 [Tauri 前置条件](https://tauri.app/zh-cn/v1/guides/getting-started/prerequisites)。
353 0
Tauri 开发实践— Tauri 工程搭建
|
云安全 SQL 安全
揭秘DDoS与CC攻击的异同与防御策略!
本文详细解析了CC攻击与DDoS攻击这两种常见网络威胁,探讨了它们的异同及防御策略。通过一个网站遭遇攻击的真实案例,揭示了CC攻击的隐蔽性和DDoS攻击的强大破坏力。文章还介绍了德迅云的高防服务器解决方案,强调了加强网络安全意识和技术防护的重要性,帮助网站运营者有效抵御网络攻击,确保业务稳定运行。
|
敏捷开发 安全 测试技术
阿里云云效产品使用合集之如何在甘特图视图中看到负责人信息
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
人工智能 自然语言处理 安全
无影上新,AI助手晓颖来了!
无影上新,AI助手晓颖来了!
625 2
npm ERR! code ERESOLVEnpm ERR! ERESOLVE could not resolvenpm ERR!-解决
npm ERR! code ERESOLVEnpm ERR! ERESOLVE could not resolvenpm ERR!-解决
216 3