您的位置:首页 > 编程语言 > Java开发

JAVA异常与异常处理重点

2017-01-10 15:33 169 查看
JAVA异常与异常处理重点

捕获异常try-catch-finally

1、try

    捕获异常的第一步是用try{…}选定捕获异常的范围,由try所限定的代码块中的语句在执行过程中可能会生成异常对象。Try语句不能单独存在,必须有后面的catch或finally语句。

2、catch  

    每个try代码块可以伴随一个或多个catch语句,用于处理try代码块中所生成的异常事件。catch语句只需要一个形式参数来指明它所能够捕获的异常类型,这个类必须是Throwable的子类,运行时系统通过参数值把被抛出的异常对象传递给catch块。

    catch块中的代码用来对异常对象进行处理,与访问其它对象一样,可以访问一个异常对象的变量或调用它的方法。getMessage( )是类Throwable所提供的方法,用来得到有关异常事件的信息,类Throwable还提供了方法printStackTrace( )用来跟踪异常事件发生时执行堆栈的内容。

3.catch 语句的顺序:   

捕获异常的顺序和catch语句的顺序有关,当捕获到一个异常时,剩下的catch语句就不再进行匹配。因此,在安排catch语句的顺序时,首先应该捕获最特殊的异常,然后再逐渐一般化。也就是一般先安排子类,再安排父类。

4.、finally

    捕获异常的最后一步是通过finally语句为异常处理提供一个统一的出口,使得在控制流转到程序的其它部分以前,能够对程序的状态作统一的管理。一般是用来关闭文件或释放其他的系统资源。虽然finally作为try-catch-finally结构的一部分,但在程序中是可选的,也就是说可以没有 finally语句。

    如果存在finally语句,不论try块中是否发生了异常,是否执行过catch 语句,是否包含有break、continue、return或者throw语句,都必须执行finally块中所包含的语句。

    此外,try-catch-finally可以嵌套。



throw 和 throws

语句抛出的异常:借助throw语句定义何种情况是产生了此种异常对应的错误。

声明抛出异常是在一个方法声明中的throws子句中指明的。

throws关键字

throws子句中同时可以指明多个异常之间由逗号隔开

在程序中生成异常类对象并抛出:

    异常的抛出是通过throw语句来实现的。首先要生成异常对象,异常或者由虚拟机生成,或者由某些类的实例生成,也可以在程序中生成。

   在方法中,抛出异常对象是通过throw语句实现的。

例如:  

      IOException e=new IOException();  
 throw e ;

又如:

public void set(int age) throws Exception {

    if (age>0 && age<100)

        this.age = age;

    else

        throw new Exception("IllegalAgeData");      

}

    [修饰符] 返回类型 方法名(参数表) throws 异常类名表

    {

        …

        throw  异常对象;

        …

    }

一般这种抛出异常的语句被定义为在满足一定条件时执行,例如把throw语句放在if语句的if分支中,只有当条件得到满足,即用户定义的逻辑错误发生时才执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: