Java程序设计实用教程_胡伏湘_清华大学出版社8习题答案

上传人:痛*** 文档编号:181649114 上传时间:2023-01-15 格式:PDF 页数:4 大小:450.71KB
收藏 版权申诉 举报 下载
Java程序设计实用教程_胡伏湘_清华大学出版社8习题答案_第1页
第1页 / 共4页
Java程序设计实用教程_胡伏湘_清华大学出版社8习题答案_第2页
第2页 / 共4页
Java程序设计实用教程_胡伏湘_清华大学出版社8习题答案_第3页
第3页 / 共4页
资源描述:

《Java程序设计实用教程_胡伏湘_清华大学出版社8习题答案》由会员分享,可在线阅读,更多相关《Java程序设计实用教程_胡伏湘_清华大学出版社8习题答案(4页珍藏版)》请在装配图网上搜索。

1、 1 Java 程序设计精典教程习题答案 编著:胡伏湘,雷军环 清华大学出版社 第第 8 章习题解答章习题解答 一、一、简答题简答题 1什么是异常?异常产生的原因有哪些?什么是异常?异常产生的原因有哪些?答:异常就是 Java 程序在运行过程中出现的错误。这类错误使程序非正常终止,但通过修正后还可以继续运行。异常产生的原因有:(1)JVM 检测到非正常的执行状态,这些状态可能由以下情况引起的:表达式违反了 Java 语言的语义,如除数为 0 装入或链接程序时出错 超出了资源限制,如内存不足,这种异常是程序员无法预知的(2)程序代码中的 throw 语句被执行(3)因为代码段不同步而产生,可能的

2、原因是:Thread(线程)的 stop 方法被调用 JVM 内部发生错误。2为什么为什么 Java 的异常处理技术优于传统程序的异常处理技术?的异常处理技术优于传统程序的异常处理技术?答:在没有异常处理机制的程序设计语言中进行异常处理,通常是在程序设计中使用if-else 或 switch-case 语句所能设想的到的错误情况,以捕捉程序中可能发生的错误。在这种处理方式的程序中,对异常的监视、报告和处理的代码与程序中完成正常功能的代码交织在一起,即在完成正常功能的程序的许多地方插入了与处理异常有关的程序块。这种处理方式虽然在异常发生点可以看到程序如何处理异常,但它干扰了人们对程序正常功能的理

3、解,使程序的可读性和可维护性下降,并且由于人的思维限制,常常会遗漏一些意想不到的异常。Java 的异常处理机制是在程序中监视可能发生异常的程序块,将一个程序中的所有异常收集起来放到程序的某一段中处理,而不必在被监视的程序块中多处插入处理异常的代码,使完成功能的程序代码与进行异常处理的程序代码分开,增强了程序的可读性和可靠性,减少了编程人员的工作量,增加了程序的灵活性。此外,这种机制可以及时有效地处理程序运行中的异常,可以预防因错误的程序代码或系统错误所造成的不可预期的结果发生,并且当这些不可预期的错误发生时,异常处理机制会尝试恢复异常发生前的状态或对这些错误结果做一些善后处理。3在在 Java

4、 代码中可用来处理异常的方式有哪些?代码中可用来处理异常的方式有哪些?答:在 Java 代码中可用来处理异常的方式有两种:(1)在可能产生异常的方法中,采用 Java 语言提供的 try-catch-finally 语句块处理异常(2)如果一个方法可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应声明抛弃该种异常,表明该方法将不对此类异常进行处理,而由该方法的调用者负责处理。此时需在方法声明中包含 throws 子句。2 4如果发生了一个异常,但没有找到适当的异常处理程序,则会发生什么情况?如果发生了一个异常,但没有找到适当的异常处理程序,则会发生什么情况?答:如果发生了一个异常,但

5、没有找到适当的异常处理程序,则 Java 系统会采用 Java异常处理机制预设处理方法来处理异常,即一旦程序发生异常,程序就会被终止并显示相应的错误信息给用户。5说明说明 throw 与与 throws 有什么不同?有什么不同?答:throw 与 throws 的不同之处在于:throw 语句是一个独立的语句,用来明确地抛出一个异常,其作用是改变程序的执行流程,使程序跳到相应的异常处理语句中执行。而 throws 语句总是和方法定义结合起来用,在有些情况下,不需要一个方法处理本身可能产生的异常,而是希望把异常向上移交给调用这个方法的方法来处理,就需要通过 throws 语句来实现。6在设计在设

6、计 catch 块处理不同的的异常时,一般应注意哪些问题?块处理不同的的异常时,一般应注意哪些问题?答:应注意如下的问题:(1)catch 块中的语句应根据异常的不同执行不同的操作,比较通用的操作是打印异常的相关信息,包括异常名称、产生异常的方法名等。(2)由于异常对象与 catch 块的匹配是按 catch 块的先后排列顺序进行的,所以在处理多异常进应注意认真设计各 catch 块的排列顺序。一般地,处理较具体和较常见的异常的catch 块应放在前面,而可以与多种异常相匹配的 catch 块应放在较后的位置。二、编程题二、编程题 1编写一个程序,用来将作为命令行参数输入的值转换为数字,如果输

7、入的值无法转编写一个程序,用来将作为命令行参数输入的值转换为数字,如果输入的值无法转换为数字,则程序应显示相应的错误消息,要求通过异常处理方法解决。换为数字,则程序应显示相应的错误消息,要求通过异常处理方法解决。class XT008201 public static void main(String arg)try int i=Integer.parseInt(arg0);System.out.println(输入的字符串可以转换为一个有效数字);catch(NumberFormatException e)System.out.println(请输入一个有效数字);/在在 JCreator

8、中如何输入命令行参数中如何输入命令行参数?/Configure-Options-JDK Tools/然后在 select Tool(下拉列表下拉列表)里选择 Run Application,/单击下面的 Default,单击 Edit 按钮/在弹出的窗口里选 Parameters,勾选 Prompt for main method argume,/OK 就可以了,/然后执行运行时会跳出一个对话框,需要在里面输入,/现在输入的就是 args,要输入多个就以空格隔开 3 2编写一个程序,用于将来自用户的两个数字接受为命令行参数。将第一个数字除编写一个程序,用于将来自用户的两个数字接受为命令行参数。

9、将第一个数字除以第二次数字并显示结果。代码应当处理引发的异常,即在输入的参数数量不是两个或用以第二次数字并显示结果。代码应当处理引发的异常,即在输入的参数数量不是两个或用户输入户输入 0 作为参数时引发异常。作为参数时引发异常。class XT008202 public static void main(String args)int x,y,z;try x=Integer.parseInt(args0);y=Integer.parseInt(args1);z=x/y;System.out.println(x+/+y+=+z);catch(ArrayIndexOutOfBoundsExcept

10、ion e)System.out.println(输入的参数数量不是两个);catch(ArithmeticException e)System.out.println(第二个参数不能为零);finally System.out.println(程序运行结束);3编写一个程序,说明在一个编写一个程序,说明在一个 catch 处理程序中引发一个异常时会发生什么情况。处理程序中引发一个异常时会发生什么情况。public class XT008203 public static void main(String args)try throw new NullPointerException(空指针异

11、常);catch(NullPointerException e)System.out.println(捕捉第一次产生的空指针异常);throw new ArithmeticException(数学异常);finally System.out.println(程序正常执行完毕!);当在异常处理程序中引发了异常时,该异常应由原 try 块的外层程序来处理,如果没有捕获处理,异常将向上级传递。4编写一个可演示用户自定义异常用法的程序,该程序接受用户输入的学生人数,当编写一个可演示用户自定义异常用法的程序,该程序接受用户输入的学生人数,当 4 输入一个负数时,认为是非法的。用户自定义异常捕获此错误。输

12、入一个负数时,认为是非法的。用户自定义异常捕获此错误。import java.io.*;class XT008204 public static void main(String args)String s=;int t;while(true)try System.out.print(请输入学生人数:);BufferedReader in=new BufferedReader(new InputStreamReader(System.in);s=in.readLine();t=Integer.parseInt(s);if(t0)throw new NegException(人数不能为负数!);System.out.println(你输入的人数是:+t);break;/end try catch(IOException e)System.out.println(e);catch(NegException e)System.out.println(e);/end while /end main()/end class class NegException extends Exception public NegException(String message)super(message);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!