java 的异常处理

来源:互联网 发布:蕲春广电网络 编辑:程序博客网 时间:2024/05/21 06:41

异常处理

1.   异常的概述:运行期出现的错误(不是javac里面编译出的错)。

1)java异常是java提供的用于处理程序中错误的一种机制

(2)所谓错误就是指在程序运行的过程中发生的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在)。

(3)设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或者产生不可预见的结果。

(4)java程序的执行过程中如出现异常事件可以生成一个异常类对象,该异常类对象封装了异常事件的信息将被提交给java运行时系统,这个过程称为抛出异常

(4)当java运行时系统接受到异常,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常(runtiameexception可以不用抓他,但是其他的exception就必须抓住他。)

2.在java中如何进行捕捉异常:

【用try这个关键字进行尝试运行某个异常语句,catch这个关键字,捕捉异常语句;对于要用catch时,try必须与它一起用,他们相当于搭档,不容分开,就是响应catch时必须有try,还有就是try里面是有可能发生异常的语句,而那个catch只是对发生了异常的语句进行处理】:

try{

System.out.println(2/0);

}catch(ArithmeticException ae){

    System.out.println("系统正在维护,请于管理员联系!");//捕捉到根错误在返回给程序员调试,以后对于自己开发android小程序,可以采用这种方法。嘿嘿!

    ae.printStackTrace();

    }ae是异常对象的名字,是我们对catch到的对象取得名字

》》在J2SDK中有好多异常类,这些类对应了各种各样可能出现的异常事件

3.java中的万恶之源为Throwable,

那么这个万恶之源又分为Error和Exception,其中Error是系统里面出现的错误,我们解决不了,但是(Exception)异常错误我们却可以解决,就像我们开车去爬山,Error就像山体滑坡,我们解决不了,但是如果异常(Exception)就像我们的车子坏了一样,我们是可以找到问题然后解决的。其中异常错误(Exception)里面有分为RuntimeException(经常出现的错误)和其他异常

异常分类:

1.   Error:称为错误,由java虚拟机生成并抛出,包括动态链接失败·虚拟机错误等,程序对其不做处理。

2.   Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显示的声明或者捕获。[往往是一个异常引发出更多的错误,所以一般要先找到合适的错误点才能更快的解决]

3.   RuntimeException:一类特殊的异常,如被0除,数组下标超范围等,其产生比较烦繁,处理麻烦,如果显示的声明或者捕获将会对程序可读性和运行效率影响很大。因此由系统自动检测并将他们交给缺省的异常处理程序(用户不必对其处理)。

4.异常的捕获和处理

(1)try代码段包含可能产生例外的代码

(2)try代码段后跟有一个或多个catch代码段

(3)每个catch代码段声明其能处理的一种特定类型的异常并提供处理的方法

(4)当异常发生时,程序会中止当前的流程,根据获取异常的类型去执行相应的catch代码段

(5)finally段的代码无论是否发生异常都会执行。

(6)finally是干什么用的,就像在try语句中,执行一个打开文件的代码,然后这个语句出错了,那么不可能总是老这个错误的文件总打开吧,所以在最后弄个finally语句,不管什么情况都要执行,这样就能解决这个问题了

5.try语句

(1)try{…}语句指定了一段代码,该代码就是一次捕获并处理例外的范围。

(2)在执行的过程中,该代码可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理

(3)如果没有例外产生,所有的catch代码段都被滤过不执行

6.catch语句

(1)在catch语句块中是对异常进行处理的代码,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象

(2)在catch中声明的异常对象(catch (SomeException e))封装了异常事件发生的信息,在catch语句块中可以使用这个对象的一些方法获取这些信息

(3)比如:getMessage()是用来得到有关异常事件的信息   printStackTrace()方法是用来跟踪异常事件发生时执行堆栈的内容。

7.finally语句

(1)finally语句为异常处理提供一个统一的出口,使得在控制流程转到程序的其他部分以前,能够对程序的状态作统一的管理

(2)无论try所指定的程序块中是否抛出例外,finally所指定的代码都要被执行。

(3)通常在finally语句中可以进行资源的清除工作,如(关闭打开的文件夹,删除零时文件)

(4)finally里最好有close因为这里要关闭,这样才不会出现上面我说的那种情况,这也是公司考察你的编写能力是否录取你的关键。相关方面要考虑周到(抓到一个异常必须进行处理,因为不作出处理的话,这个异常就被我们悄悄的吞掉了)

8.使用自定义的异常【使用的 一般步骤是】

(1)通过继承java.lang.Exception类声明自己的异常类

(2)在方法适当的位置生成自定义异常的实例,并用throw语句抛出。

(3)在方法的声明部分用throws语句声明该方法可能抛出的异常。

(4)当抛出一个异常时,程序就卡在那里不会执行下面的语句了。 有了异常以后使得java程序设计的更健壮。

原创粉丝点击