🌹🌹🌹个人主页🌹🌹🌹
【🌹🌹🌹Java SE 专栏🌹🌹🌹】
🌹🌹🌹上一篇文章:【Java SE】带你在String类世界中遨游!!!🌹🌹🌹
文章目录
1. 异常的概念与体系结构
1.1 异常的概念
在Java中,将程序执行过程中发生的不正常行为称为异常。如之前写代码时经常遇到的:
1. 算术异常
public static void main1(String[] args) {
System.out.println(10/0);//算术异常
//Exception in thread "main" java.lang.ArithmeticException: / by zeroat Exception.main(Exception.java:10)
}
2. 数组越界异常
public static void main2(String[] args) {
int[] array = {
1,2,3};
for(int i=0;i<=3;i++) {
System.out.println(array[i]);//数组越界
//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
}
}
3. 空指针异常
public static void main(String[] args) {
int[] array = null;
System.out.println(array.length);//空指针异常
//Exception in thread "main" java.lang.NullPointerException
}
从上述过程中可以看到,java中不同类型的异常,都有与其对应的类来进行描述。
1.2 异常的体系结构
异常种类繁多,为了对不同异常或者错误进行很好的分类管理,Java内部维护了一个异常的体系结构:
从上图中可以看到:
- Throwable:是异常体系的顶层类,其派生出两个重要的子类, Error 和 Exception
- Error:指的是Java虚拟机无法解决的严重问题,比如:JVM的内部错误、资源耗尽等,典型代表:StackOverflowError和OutOfMemoryError,一旦发生回力乏术。
- Exception:异常产生后程序员可以通过代码进行处理,使程序继续执行。比如:感冒、发烧。我们平时所说的异常就是Exception。
1.3 异常的分类
异常可能在编译时发生,也可能在程序运行时发生,根据发生的时机不同,可以将异常分为:
1. 编译时异常
在程序编译期间发生的异常,称为编译时异常,也称为受检查异常(Checked Exception)
public class Person {
private