JAVA语言程序设计第六章课件.ppt
文本预览下载声明
第6章 异 常 处 理;Public class HelloWorld{
public static void main(String args[ ]){
int i=0;
String greetings[ ]={ “Hello World!”,”Hello!”,
“HELLO WORLD!!”};
while ( i4){
System.out.println(greetings[i]);
i++;
}
}
};?异常是在程序运行时打断正常程序流程的任何不正常的情况
试图打开的文件不存在
网络链接中断
操作符越界
要加载类文件不存在
? 为了保证程序的正常运行,Java提供了异常处理机制。针对常见的异常定义了相应的异常类,并建立了异常类体系;Throwable;?Java处理的异常可以大致分为两类:Error及其子类、Exception。Java 对于不同的异常采取不同的处理策略
Error
很难恢复的严重错误,一般不由程序处理。
RuntimeException
程序设计或实现上的问题,如数组越界、算术运算异常、空指针异常等。对于这类异常,处理的策略是纠正错误。
其它例外
通常是由环境因素引起的,如文件不存在,无效URL等。这类异常经常是由用户的误操作引起的,可以在异常处理中处理。
;异常处理方法;1、捕获并处理异常;try语句块;catch语句块;finally语句块;针对多种异常的通用异常处理;catch (IOException e) {
System.err.println(Caught IOException: + e.getMessage());
}
finally {
if (out != null) {
System.out.println(Closing PrintWriter);
out.close();
} else {
System.out.println(PrintWriter not open);
}
}
}
;writeList方法中的try语句块的执行可能有三种情况:
出现了IOException
Entering try statement
Caught IOException: OutFile.txt
PrintWriter not open
出现了数组越界错误
Entering try statement
Caught ArrayIndexOutOfBoundsException: 10 = 10
Closing PrintWriter
正常退出
Entering try statement
Closing PrintWriter;2、将方法中产生的异常抛出;声明异常
异常是在方法的声明中使用throws子句进行声明的,具体格式如下:
returnType methodName([paramlist]) throws exceptionList
抛出异常
异常的抛出是通过throw语句来实现的。该语句的一般格式如下:
throw someThrowableObject
执行throw语句后,运行流程立即停止??系统转向调用者程序,检查是否有catch子句能匹配的Throwable实例。如果找到相匹配的实例,系统转向该子句;如果没有找到,则转向上一层的调用程序。;示例:
public Object pop() throws EmptyStackException {
Object obj;
if (size == 0)
throw new EmptyStackException();
obj = objectAt(size - 1);
setObjectAt(size - 1, null);
size--;
return obj;
}
抛出例外的throw语句:
throw someThrowableObject;自定义异常类;自定义异常类与Java异常类的融合
由于Java异常处理机制只能处理Throwable类或其子类的对象,所以自定义异常类需要选取Throwable类或其某个子类作为父类。
一般自定义的异常类都以
显示全部