JAVASE---认识异常

在Java中,将程序执行过程中发生的不正常行为称为异常。

1.算数异常

2.数组越界异常

3.空指针异常

java中不同类型的异常,都有与其对应的类来进行描述。

异常的体系结构

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

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

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

异常的分类

编译时异常

运行时异常

异常的处理

防御式编程

  1. LBYL: Look Before You Leap. 在操作之前就做充分的检查. 即:事前防御型

缺陷:正常流程和错误处理流程代码混在一起, 代码整体显的比较混乱。

  1. EAFP: It's Easier to Ask Forgiveness than Permission. "事后获取原谅比事前获取许可更容易". 也就是先操作, 遇到问题再处理. 即:事后认错型

优势:正常流程和错误流程是分离开的, 程序员更关注正常流程,代码更清晰,容易理解代码异常处理的核心思想就是 EAFP。

在Java中,异常处理主要的5个关键字:throw、try、catch、final、throws。

异常的捕获

异常的捕获,也就是异常的具体处理方式,主要有两种:异常声明throws 以及 try-catch捕获处理。

自定义异常类

Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我们实际情况的异常结构。

相关推荐
ShineWinsu2 分钟前
对于Redis:缓存的解析
java·redis·缓存·缓存穿透·缓存击穿·缓存雪崩·缓存预热
Nil2087 分钟前
leetcode 70爬楼梯
算法·leetcode·动态规划
rannn_11111 分钟前
【Java面试题】高频面试题1|Java 后端、MySQL、Redis 与 RAG 面试整理
java·jvm·数据库·后端·面试
写后端的胖头鱼14 分钟前
一文详解Spring 事务失效场景
java·spring·事务·transactional·事务传播机制
Q264336502319 分钟前
【有源码】基于Spring Boot和Vue的在线考试与交流系统-教育信息化背景下在线考试与交流一体化平台
java·vue.js·spring boot·mysql·spring·毕业设计·课程设计
垆边人似月.19 分钟前
最长递增子序列的个数(200分 / 动态规划)
算法·动态规划
Mikko729 分钟前
JVM 线上排查实战(七):jps 看不到进程、jstack 报不允许的操作怎么办?attach 失败的六种情况实测
java·运维·jvm·后端
jianjinwssy30 分钟前
MyBatis-Plus 从入门到实战:常用功能与核心原理
java·mybatis
镜子AI36 分钟前
教培机构多模态内容跨模态检索系统:基于CLIP的统一表征与图文混合召回算法
人工智能·python·算法·机器学习
会编程的吕洞宾38 分钟前
Spring AI 2.0 会话记忆实战,让 AI 助手记住每一次对话
java·人工智能·spring