欢迎来到天天文库
浏览记录
ID:32784377
大小:55.10 KB
页数:3页
时间:2019-02-15
《第7章习题参考答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、习题七参考答案7.1什么是异常?为何需要异常处理?答:在程序运行时打断正常程序流程的任何不正常的情况称为错误(Error)或异常(Exception)o在程序设计时,若对程序运行可能出现的错误或异常不进行处理,程序运行发生错误时程序将终止运行,这种处理方法的优点是程序设计比较简单。但是,对程序错误一概地采用终止运行办法,显然过于简单化,因为有些情况下,完全可以通过其他途径保持程序继续运行。比如,由于文件名不符合要求而无法打开文件,那么,可以提示用户输入一个新的文件名,从而使程序继续往下运行。在程序屮使用了异常处理,就可以在解决问题Z
2、后使程序继续运行,提高了应用程序的健壮性和容错能力。7.2列举5种常见的异常。答:被零除、数组下标越界、引用空对象、文件不能打开、数据格式错误。7.3Java中的异常处理主要处理哪些类型的异常?Java处理的异常分为3种:Error类、RunTimeException类和其它Exception类。Error类错误与程序本身基本无关,通常由系统进行处理。RuntimeException类界常主要是程序设计或实现问题,可以通过调试程序尽量避免而不是去捕获。有些异常在程序编写时无法预料,如屮断异常、文件没有找到异常、无效的URL异常等,是
3、除RunTimeException类异常的其它Exception异常(非运行时异常)。在正常条件下这些异常是不会发生的,什么时候发生也是不可预知的。为了保证程序的健壮性,要求必须对可能出现的这类异常进行捕获并处理。7.4如果在try程序块中没有发生异常,那么当该程序块执行完后,程序继续执行什么地方的语句?答:如果一个try程序块屮没有发生任何界常,那么就跳过该块的异常处理程序,继续执行最后一个catch块之后的代码。如果有finally程序块的话,就执行finally程序块及其后的语句。7.5如果在try程序块中发生了异常,但找不到
4、与之匹配的异常处理程序,会发生什么情况?答:如果在try程序块中发生了异常,但找不到与之匹配的异常处理程序,可能会发生2种情况。一种是程序终止运行,一种是把异常向上移交给调用包含该try程序块方法的方法来处理。7.6在try程序块中发生了异常,其后如果有多个catch参数类与之匹配,会执行那个catch块中的异常处理程序。答:当try语句块中的代码执行时发生异常,程序的正常运行便中断,并抛出异常对象,然后在try块后面的各个catch()屮查找与异常对象相匹配的异常类,当找到第一个与Z相匹配的参数类时,就执行包含这一参数类的catc
5、h语句块中的代码。7.7什么情况下要使用finally程序块?答:finally子句为异常处理提供一个统一的出口,使得在控制流转到其它部分以前(即使有return,break语句),能够对程序的状态作统一的管理。finally程序块屮通常都包含一些用于资源释放的代码块。例如,在finally程序块中应将try程序块中打开的所有文件关闭。7.8假设下列try-catch语句块中的第2个语句s2产生一个异常,试回答下述问题:答:若try-catch语句块屮的第2个语句s2产生一个异常,⑴语句s3不会执行,⑵如果catch捕获到异常,异常
6、处理后,会继续执行语句s4,⑶如果异常未被捕获,则程序终止运行,语句s4也不会执行。7.9发生一个异常一定会导致程序终止吗?答:发生一个异常不一定会导致程序终止运行。若程序屮没有异常处理,发生一个异常一定会导致程序终止运行。若程序中有异常处理,发生一个异常并被捕获,则异常处理后,程序会继续运行。7.10分析下面程序的执行流程并写出输出结果。答:程序运行时,main()方法调用action()方法,action()方法屮抛出一个MyException类异常,但没有捕获及处理,而是向上移交给mainO方法,在main()方法捕获并处理。
7、程序执行的输出结果是:MyException7.11设计并实现一个程序。新建一个异常类StringTooLongException,当发现字符串长度太长时抛出该异常。在程序的main方法中循环输入字符串,直到输入“DONE”为止。如果输入的字符串长度超过20个字符,则抛岀异常。考虑两种异常处理方式:⑴抛岀异常终止程序;⑵捕获并处理异常,输出适当的提示信息并继续输入字符串。下面的程序按第2种方式处理。importjava.util.Scanner;publicclassXt6_ll_DefineException{publicstat
8、icvoidmain(String[]args){Stringstr='*Scannerscan=newScanner(System.上a);StringTooLongExceptionproblem=newStringTooLong
此文档下载收益归作者所有