在Java中,将程序执行过程中发生的不正常行为称为异常。
算数异常
数组越界异常
空指针异常
java中不同类型的异常,都有与其对应的类来进行描述。
异常的体系结构
Throwable:是异常体系的顶层类,其派生出两个重要的子类, Error 和 Exception
2. Error:指的是Java虚拟机无法解决的严重问题,比如:JVM的内部错误、资源耗尽等,典型代表:StackOverflowError和OutOfMemoryError,一旦发生回力乏术。
3. Exception:异常产生后程序员可以通过代码进行处理,使程序继续执行。比如:感冒、发烧。我们平时所说的异常就是Exception。
异常的分类
编译时异常
运行时异常
异常的处理
防御式编程
LBYL: Look Before You Leap. 在操作之前就做充分的检查. 即:事前防御型
缺陷:正常流程和错误处理流程代码混在一起, 代码整体显的比较混乱。
EAFP: It's Easier to Ask Forgiveness than Permission. "事后获取原谅比事前获取许可更容易". 也就是先操作, 遇到问题再处理. 即:事后认错型
优势:正常流程和错误流程是分离开的, 程序员更关注正常流程,代码更清晰,容易理解代码异常处理的核心思想就是 EAFP。
在Java中,异常处理主要的5个关键字:throw、try、catch、final、throws。
异常的捕获
异常的捕获,也就是异常的具体处理方式,主要有两种:异常声明throws 以及 try-catch捕获处理。
自定义异常类
Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我们实际情况的异常结构。
来源地址:https://blog.csdn.net/m0_75040012/article/details/133094142