文档详情

JAVA语言程序设计第六章课件.ppt

发布:2017-08-14约2.33千字共22页下载文档
文本预览下载声明
第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类或其某个子类作为父类。 一般自定义的异常类都以
显示全部
相似文档