欢迎来到天天文库
浏览记录
ID:16093543
大小:83.00 KB
页数:8页
时间:2018-08-07
《scjp培训第七章java异常》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第七章异常本模块讲述建立在Java编程语言中的错误处理装置。第一节相关问题讨论—下述问题与本模块中的材料相关:-在大部分编程语言中,如何解决运行时错误?第二节目的本模块学习结束后,能够:-定义异常-使用try,catch和finally语句-描述异常分类-开发程序来处理自己的异常第三节异常异常异常类定义程序所遇到的轻微错误发生下列情况时,会出现异常:想打开的文件不存在网络连接中断受控操作数超出预定范围非常感兴趣地正在装载的类文件丢失错误类定义严重的错误条件7.3.1介绍什么是异常?在Java103编程语言中,异常
2、类定义程序中可能遇到的轻微的错误条件。可以写代码来处理异常并继续程序执行,而不是让程序中断。在程序执行中,任何中断正常程序流程的异常条件就是错误或异常。例如,发生下列情况时,会出现异常:-想打开的文件不存在-网络连接中断-受控操作数超出预定范围-非常感兴趣地正在装载的类文件丢失在Java编程语言中,错误类定义被认为是不能恢复的严重错误条件。在大多数情况下,当遇到这样的错误时,建议让程序中断。Java编程语言实现C++异常来帮助建立弹性代码。在程序中发生错误时,发现错误的方法能抛出一个异常到其调用程序,发出已经发生
3、问题的信号。然后,调用方法捕获抛出的异常,在可能时,再恢复回来。这个方案给程序员一个写处理程序的选择,来处理异常。通过浏览API,可以决定方法抛出的是什么样的异常。7.3.2实例考虑一下HelloWorld.java程序版本的简单扩展,它通过信息来循环:1.publicclassHelloWorld{2.publicstaticvoidmain(Stringargs[]){3.inti=0;4.5.Stringgreetings[]={6."Helloworld!",7."No,Imeanit!",8."HELL
4、OWORLD!!"9.};10.11.while(i<4){12.System.out.println(greetings[i]);13.i++;14.}15.}16.}正常情况下,当异常被抛出时,在其循环被执行四次之后,程序终止,并带有错误信息,就象前面所示的程序那样。1.c:student>javaHelloWorld2.Helloworld!3.No,Imeanit!4.HELLOWORLD!!5.java.lang.ArrayIndexOutOfBoundsException:36.atHelloWo
5、rld.main(HelloWorld.java:12)异常处理允许程序捕获异常,处理它们,然后继续程序执行。它是分层把关,因此,错误情况不会介入到程序的正常流程中。特殊情况发生时,在与正常执行的代码分离的代码块中被处理。这就产生了更易识别和管理的代码。103第四节异常处理Java编程语言提供了一个来考虑哪个异常被抛出以及如何来恢复它的机制。7.4.1try和catch语句try和catch语句1.try{2.//codethatmightthrowaparticularexception3.}catch(MyE
6、xceptionTypee){4.//codetoexecuteifaMyExceptionTypeexceptionisthrown5.}catch(Exceptione){6.//codetoexecuteifageneralExceptionexceptionisthrown7.}要处理特殊的异常,将能够抛出异常的代码放入try块中,然后创建相应的catch块的列表,每个可以被抛出异常都有一个。如果生成的异常与catch中提到的相匹配,那么catch条件的块语句就被执行。在try块之后,可能有许多catch
7、块,每一个都处理不同的异常。1.try{2.//codethatmightthrowaparticularexception3.}catch(MyExceptionTypee){4.//codetoexecuteifaMyExceptionTypeexceptionisthrown5.}catch(Exceptione){6.//codetoexecuteifageneralExceptionexceptionisthrown7.}7.4.2调用栈机制如果方法中的一个语句抛出一个没有在相应的try/catch块中
8、处理的异常,那么这个异常就被抛出到调用方法中。如果异常也没有在调用方法中被处理,它就被抛出到该方法的调用程序。这个过程要一直延续到异常被处理。如果异常到这时还没被处理,它便回到main(),而且,即使main()不处理它,那么,该异常就异常地中断程序。考虑这样一种情况,在该情况中main()方法调用另一个方法(比如,first()),然后它调用另一个(比如,second(
此文档下载收益归作者所有