- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA语言程序设计第六章课件
第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类或其某个子类作为父类。
一般自定义的异常类都以
文档评论(0)