异常处理

我们写的程序在运行的过程中,常常会发生异常,导致程序无法得到我们想要的结果,我们也不知道问题究竟出在了那里,但是学习了异常之后,就会发现有些异常是可以避免的,我们也可以知道其产生的具体原因,而将异常处理应用于我们所写的程序中,会使我们写的程序更具有高效性和健壮性。(图源网络,侵删哦)

1.异常概述

异常:在程序开发过程中,可能存在各种错误,有些错误是可以避免的,而有些错误时意想不到的,Java中把这可能发生的错误称为异常。

如图所示为异常类的继承关系:

 

 

 

 

 2.异常的分类

Java中捕获的异常分为可控式异常和运行时异常。

1)可控式异常:通常是可以预知的错误,在程序编译时就可以对程序中的错误进行处理,并给出具体错误信息。

常见的可控式异常:IOException  、SQLException、ClassNotFoundException、NoSuchFieldException、NoSuchMethodException。

2)运行时异常:不能被编译器检测到的异常。

常见的运行时异常:IndexOutOfBoundsException、NullPointerException、ArithmeticException、illegalArgumentException、ClassCastException。

 

3.获取异常信息

 

 

 4.处理异常

1)try-catch处理异常

2)try-catch-finally处理异常

3)try-finally处理异常

一般来说:

try和catch之间的 {} 中是需要正常处理但又可能发生过异常的语句;

catch之后()内是需要处理的异常类型;

catch之后 {} 是对程序发生的异常处理的语句;

finally后的{}内的语句,如果JVM不关闭,无论程序是否发生异常都会被执行。

 

 

 

 

 

 

 

***注意***

以下四种特殊情况,finally块不会被执行

*在finally语句中发生了异常

*在前面的代码里里使用了System.exit()退出程序

*程序所在的线程死亡

*关闭CPU

5.抛出异常

处理异常除了使用try-catch等外,还可以使用throws声明或throw语句抛出异常。

1)使用throws声明抛出异常

throws 用来标明一个成员函数可能抛出的各种“异常”。出现在方法的声明中。

2)使用throw语句抛出异常

throw : 在方法中,将产生的异常抛出(强调的是动作),抛出的既可以是异常的引用,也可以是异常对象。

 

6.自定义异常

1)创建自定义异常,

创建自定义异常需要继承自Exception类,并提供一个含有String类型形参的构造方法,该形参就是异常的描述信息,该形参就是异常的描述信息, 可以通过getMessage()方法获得。

2) 使用自定义异常类

 

 

 

 

 

posted @ 2019-11-01 18:36  祈欢  阅读(163)  评论(0编辑  收藏  举报