Java学习笔记之——异常处理

时间:2023-06-16 15:03:26

1.异常:

在程序运行时,发生了一些错误导致程序不能正常结束或者中断

2.异常导致的后果

Java程序的执行过程中如果出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息,并将其被提交给Java运行时系统,这个过程称为抛出异常,不处理的话会直接导致程序中断。

3. 异常的分类

(1)分类根据继承关系:

Throwable(Java语言中所有错误或异常的超类)

Throwable下面有两个直接子类:

a.  Error:系统性的相关问题,如jvm

b.  Exception:程序相关问题

Exception的子类之一:RuntimeException(运行时异常)

(2)根据是否必须处理分类

a. 受查异常:在编译阶段必须处理掉的错误

Exception本身

Exception除了RuntimeException以外的所有子类

这些异常,跟程序相关,但通常是外界因素造成的,比如你要访问一个文件,第一次访问了,第二次访问的时候被人删除了,你就找不到文件链接

Java学习笔记之——异常处理

b. 非受查异常:编译时不报错,运行时报错,即不需要通过异常机制处理就可以编译通过

Error:无能为力

RuntimeException及其子类:通常是由于自己代码的问题,应该调整代码,如空指针、数组越界

Java学习笔记之——异常处理

4. 处理异常的方式

五个关键字:try-catch-final-throws-throw

(1) 捕获:try-catch

try{

放的是一些可能会出现错误的代码

}catch(捕获到的异常){

当你捕获之后执行的代码

}finally{

不管怎么样都会执行的代码

}

(2) 抛出:throws、throw

在当前方法中不处理异常,让调用者处理。

调用者可以继续抛出或者处理掉

Java学习笔记之——异常处理

5.产生异常的两种方式

(1)程序自行判断

(2)程序员自己抛出的,通过throw 异常对象

6.补充

(1).自定义异常,继承与Eexception

Java学习笔记之——异常处理

(2)Exception的子类:

IOException

FileNotFindException 文件没有找到异常

RuntimeException(运行时异常)

NullPointerException 空指针异常

ArraysOutOfBoundsException  数组越界

ArithMeticException  数学异常

InrerRuptedException

(3).在抛出多个异常的时候

Java学习笔记之——异常处理

3.在try-catch 多个异常的时候,代码是不是有一定的要求

a)父类的异常后捕获,子类的异常先捕获

Java学习笔记之——异常处理

b.处理多个异常

Java学习笔记之——异常处理