第十一章 处理异常

编译错误是因为程序没有遵循语法规则,编译程序能发现错误的原因和位置;运行错误是因为程序执行时,运行环境发现了一个不能执行的操作;逻辑错误是因为程序没有按照预期的方案执行。

异常就是指程序运行时发生的错误;而异常处理就是对这些错误进行处理和控制。

1.异常分类

Error:该类描述系统内部错误。用户无法处理这种异常,如果出现了这种错误,用户只能终止程序

Exception:一般在外部环境与程序进行交互式发生这种错误。用户可以捕获这种错误并对异常进行处理

RuntimeException:该类描述了编程中的语法错误,如不合适的数据转换、访问一个越界数组元素等,都会出现这种异常

IOException:该类描述了输入/输出操作引起的一场

AWTException:该类描述了图形界面中的组件引起的异常

Throwable类

②Throwable类

java.lang包中的Throwable类是所有异常类的父类,其方法被所有子类继承。可以利用Throwable类中的实例方法获取异常的有用信息。

public string getMessage()  返回Throwable对象的详细信息

public string toString() 返回Throwable对象对异常的简要描述

public string getLocalizedMessage()  返回Throwable对象的本地化信息

public string getLocalizedMessage()   在控制台上打印Throwable对象封装的异常信息

2.异常处理机制

Java对异常的处理涉及4种操作:声明异常、抛出异常、捕获异常、处理异常。

对抛出异常和处理异常进行规范两种方法:

一是:把生命异常和抛出异常的操作封装在某个方法中,定义这种方法时在方法头中声明要抛出的异常类,在方法体中抛出相应的异常对象;第二种是,把捕获异常和处理异常封装在某个方法中。定义这种方法中,在方法体中捕获和处理异常对象。

 

①第一种方法的定义

在方法头中声明异常类:

public void myMethod() throws IOException   //这里声明的异常类是:IOException

如果方法可能抛出多个异常,可以在关键字“throws”后添加多个异常类的列表,多个异常类之间用逗号分隔

在方法体中抛出异常对象:

Throw new TheException();  //抛出异常

TheException ex=new TheException();

Throw ex;  //抛出异常

 

②第二种方法的定义

try-catch语句格式:

try-catch语句有一个try子句和多个catch子句组成。

 

try-catch语句执行原理:

try-catch语句是从上往下执行的。

1)当执行try子句时,如果没有抛出异常,则跳过所有的catch子句,结束整个try-catch语句执行。

2)如果try子句中的某条语句抛出一个异常,系统就会跳过try子句中的其余语句,开始为该异常搜索异常处理器。

 

3.finally子句

有时无论是否出现异常,我们都希望在方法中执行某些代码,在这种情况下,就应该使用finally子句来达到这一目的

try-catch-finally语句格式:

try子句中的某个语句抛出一个异常后,其后的代码不会被执行。无论try子句中的代码是否抛出异常,也无论catch自居的异常类型是否与所抛出的异常的类型一致,finally所指定的代码都要被执行,它提供了统一的出口。

 

 

 

 

posted @ 2012-11-15 19:00  i Traveling Light  阅读(123)  评论(0)    收藏  举报