首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

错误的处理

2012-12-20 
异常的处理Throwable: Error,ExceptionError处理不了 ,Exception可以捕获并处理 Exception: RuntimeExcept

异常的处理

Throwable: Error,Exception

Error处理不了 ,Exception可以捕获并处理

Exception: RuntimeException可以捕获也可以不捕获,其他异常必须主动捕获

?

public void someMethod() throws SomeExcepton /*声明该方法可能抛出的异常*/{

??? if(someCondition()) {

??????? throw new SomeException("错误原因");//构造并抛出异常对象,最终由try catch捕获

??? }

?

}

?

try {

??? someMethod();

} catch (SomeExcepton e) {

??? //异常处理代码;

}

?

try语句

try{...}语句指定了一段代码,该段代码就是一次捕获并处理例外的范围。在执行过程中,该段会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理。如果没有例外产生,所有的catch代码段都被略过不执行。

cathc语句

在catch语句块中是对异常进行处理的代码,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。在catch中声明的异常对象(catch(SomeException e))封装了异常事件发生的信息,在catch语句块中可以使用这个对象的一些方法获取这些信息。

??????? 例如:

???????????? getMessage()方法,用来得到有关异常事件的信息。

?????????? ? printStackTrace()方法,用来跟踪异常事件发生时执行堆栈的内容。

finally语句

finally语句为异常处理提供一个统一的出口,使得在控制流程转到程序的其他部分以前,能够对程序的状态作统一的管理。无论try所指定的程序块中是否抛出例外,finally所指定的代码都要被执行。通常在finally语句中可以进行资源的清除工作,如:

?????????? 关闭打开的文件

?????????? 删除临时文件等

?

对于处理不了的异常,使用throws SomeException方法往外抛出,由调用它的程序处理,该调用者还可以继续向上抛出异常,交由它的上级处理

????? void f() throws FileNotFoundException,IOException {

?????????? ...

????? }

??

???? void f2() {

??????? try {

?????????? f();

??????? } catch (FileNotFoundExcepton e) {

???????????System.out.println(e.getMessage());

??????? }?catch (IOException e {

?????????? System.out.println(e.printStackTrace());

??????? }

?

???? }

?

其他

? void m(int i) throws ArithmeticException {

???? if(i == 0)

???????? throw new ArithmeticException("被除数为0");//直接抛出异常,并且用getMessage()时拿到的是"被除数为0"

?

? }

?

?

?

热点排行