本文主要内容
1、异常以及处理方式
2、运行时期异常
3、方法重写的异常处理
4、Throwable类常见方法
5、自定义异常
01异常
A、异常概述
异常:代码在运行时期产生的问题。
在Java中,把异常信息封装成了一个类。
当程序出现问题,即创建异常类对象并抛出异常相关的信息(如异常出现的位置、原因等)。
常见的异常:数组角标越界异常ArrayIndexOutOfBoundsException,空指针异常NullPointerException
B、异常的继续体系
Throwable: 它是所有错误与异常的超类(祖宗类)
|- Error 错误
|- Exception 编译期异常,进行编译JAVA程序时出现的问题
|- RuntimeException 运行期异常, JAVA程序运行过程中出现的问题
C、异常与错误
a:异常
* 指程序在编译、运行期间发生了某种异常(XxxException),我们可以对异常进行具体的处理。
* 若不处理异常,程序将会结束运行。
public static void main(String[] args) {
int[] arr = new int[3];
System.out.println(arr[0]);
System.out.println(arr[3]);
// 该句运行时发生了数组索引越界异常ArrayIndexOutOfBoundsException,
// 由于没有处理异常,导致程序无法继续执行,程序结束。
System.out.println("over"); // 由于上面代码发生了异常,此句代码不会执行
}
b:错误
指程序在运行期间发生了某种错误(XxxError),Error错误通常没有具体的处理方式,程序将会结束运行。
Error错误的发生往往都是系统级别的问题,都是jvm所在系统发生的,并反馈给jvm。
错误无法处理,只能修正代码。
public static void main(String[] args) {
int[] arr = new int[1024*1024*100];
//该句运行时发生了内存溢出错误OutOfMemoryError,开辟了过大的数组空间,
//导致JVM在分配数组空间时超出了JVM内存空间,直接发生错误。
}
D:异常对象的产生原因和处理方式
a: 异常对象的产生原因
工具类
class ArrayTools{
//对给定的数组通过给定的角标获取元素。
public static int getElement(int[] arr,int index) {
int element = arr[index];
return element;
}
}
测试类
class ExceptionDemo2 {
public static void main