最新异常Exception处理PPT课件

上传人:汽*** 文档编号:568749110 上传时间:2024-07-26 格式:PPT 页数:26 大小:684KB
返回 下载 相关 举报
最新异常Exception处理PPT课件_第1页
第1页 / 共26页
最新异常Exception处理PPT课件_第2页
第2页 / 共26页
最新异常Exception处理PPT课件_第3页
第3页 / 共26页
最新异常Exception处理PPT课件_第4页
第4页 / 共26页
最新异常Exception处理PPT课件_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《最新异常Exception处理PPT课件》由会员分享,可在线阅读,更多相关《最新异常Exception处理PPT课件(26页珍藏版)》请在金锄头文库上搜索。

1、异常异常ExceptionException处理处理异常异常l运行期运行期出现的错误(注意看异常信息,看名字,看行号)健壮性Exceptionl类 Exception 定义了一些你的程序可能出现的轻度错误条件l异常可能发生在:你试图打开的文件并不存在 网络连接中断操作数处理的超出预描述的范围需要加载的文件丢失lError 类定义了一些严重的错误条件Java的异常处理是通过的异常处理是通过5个关键字来实现的:个关键字来实现的:try、catch、finally、throw、throws 捕获异常捕获异常 catchtryfinally执行可能产生执行可能产生 异常的代码异常的代码 捕获异常捕获异

2、常 无论是否发生异常,无论是否发生异常,代码总能执行代码总能执行手动抛出异常手动抛出异常 抛出异常抛出异常 throw声明异常声明异常 声明方法可能要声明方法可能要抛出的各种异常抛出的各种异常 throwstry,catch语句的使用语句的使用try /这里的代码可能抛出一个特别的异常 catch (MyExceptionType e) 如果MyExceptionType 的异常被抛出,将执行这里的代码 catch (Exception e) 如果一个一般 Exception 被抛出时,将执行这里的代码异常的执行流程异常的执行流程 n正常顺序n1,2,3,5 n异常顺序n1,2,4,5ntry

3、块外异常不理会try123catch(Exceptione)45异常发生处异常发生处在在try/catch块后加入块后加入finally块,可以确保无论是否发生异常,块,可以确保无论是否发生异常,finally块中的代码总能被执行块中的代码总能被执行try 块块 finally 块块 catch 块块 无异常无异常 有异常有异常 举例举例publicclassHelloWorld2publicstaticvoidmain(Stringargs)inti=0;Stringgreetings=Helloworld!,No,Imeanit!,HELLOWORLD!;while(i4)trySyste

4、m.out.println(greetingsi);catch(ArrayIndexOutOfBoundsExceptione)System.out.println(Re-sttingIndexValue);finallySystem.out.println(Thisisalwaysprinted);i+;异常处理机制异常处理机制l如果一个异常没有在当前的try、catch中被处理,它将被抛至方法的调用者处。l如果异常被返回到main方法里,并且仍然没有被处理,程序将异常中止。练习练习l编写一个类ExceptionTest1,在main方法中使用try、catch、finally:在try块中

5、,编写被0除的代码在catch块中,捕获被0除所产生的异常,并且打印异常信息在finally块中,打印一条语句多重catch块l一段代码可能会引发多种类型的异常l当引发异常时,会按顺序来查看每个 catch 语句,并执行第一个与异常类型匹配的catch语句l执行其中的一条 catch 语句之后,其后的 catch 语句将被忽略 抛出异常l如果在当前环境无法解决一个异常,就要将其抛出,把异常交给调用者处理 练习练习l编写类ExceptionTest2:定义两个方法:go()和main() 在go方法中声明要抛出异常,在该方法体内,抛出一个Exception对象在main()方法中,调用go方法,

6、使用try/catch捕获go方法中抛出的异常用户自定义异常对象用户自定义异常对象l系统预定义异常类代表了程序运行过程中可能产生的绝大多数异常。如果希望记录和应用相关的错误信息,则可创建自己的异常类。该类的定义和普通类无太大区别,只需继承Exception类或RuntimeException类即可。例如:public class MyProjException extends Exception 自定义异常自定义异常l通过继承java.lang.Exception类声明自己的异常类。l在方法适当的位置生成自定义异常的实例,并用throw抛出。l在方法的声明部分用throws声明该方法可能抛出的

7、异常。自定义异常举例自定义异常举例:publicclassServerTimedOutExceptionextendsExceptionlprivateStringserverName;lprivateintport;lpublicServerTimedOutException(StringserverName,intport)lthis.serverName=serverName;lthis.port=port;llpublicintgetPort()lreturnport;llpublicvoidsetPort(intport)lthis.port=port;llpublicStringg

8、etServerName()lreturnserverName;llpublicvoidsetServerName(StringserverName)lthis.serverName=serverName;llpublicclassTestlpublicstaticvoidmain(Stringargs)lTestt=newTest();ltryllt.connectMe(sinojava,80);lcatch(ServerTimedOutExceptione)lSystem.out.println(连接服务器连接服务器+e.getServerName()+,端口为端口为+e.getPort(

9、)+失败失败);llpublicvoidconnectMe(StringserverName,intport)throwsServerTimedOutExceptionlif(serverName.equals(sinojava)&port=80)lSystem.out.println(连接成功连接成功!);lelselthrownewServerTimedOutException(sinojava,port);llJava异常的使用异常的使用l对非运行时异常必须捕获或声明。对运行时异常,若不能预测它何对非运行时异常必须捕获或声明。对运行时异常,若不能预测它何时发生,程序可不作处理,而是交给时

10、发生,程序可不作处理,而是交给Java运行时系统来处理;若运行时系统来处理;若能预知它可能发生的地点和时间,则应在程序中处理,而不应简单能预知它可能发生的地点和时间,则应在程序中处理,而不应简单地交给运行时系统。地交给运行时系统。l异常可以人为地抛出,用异常可以人为地抛出,用thrownew语句。语句。l异常可以是系统已经定义好的,也可以是用户自己定义的。用户自异常可以是系统已经定义好的,也可以是用户自己定义的。用户自己定义的异常一定继承自己定义的异常一定继承自Throwable或或Exception类。类。l在自定义异常类时,如果它所对应的异常事件通常总是在运行时产在自定义异常类时,如果它所对应的异常事件通常总是在运行时产生,而且不容易预测它将在何时何地发生,可以将它定义为运行时生,而且不容易预测它将在何时何地发生,可以将它定义为运行时异常,否则应定义为非运行时异常。异常,否则应定义为非运行时异常。l应该使用应该使用finally语句为异常处理提供统一的出口。语句为异常处理提供统一的出口。关于异常的设计关于异常的设计l异常处理不是用来代替测试程序l不要压制异常l抛出异常不是一件坏事结束语结束语谢谢大家聆听!谢谢大家聆听!26

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号