收藏 分享(赏)

自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后习题.doc

上传人:dzzj200808 文档编号:2965860 上传时间:2018-10-01 格式:DOC 页数:9 大小:23.50KB
下载 相关 举报
自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后习题.doc_第1页
第1页 / 共9页
自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后习题.doc_第2页
第2页 / 共9页
自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后习题.doc_第3页
第3页 / 共9页
自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后习题.doc_第4页
第4页 / 共9页
自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后习题.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、自考 Java 语言程序设计(一)第八章 Java 异常处理及输入输出流简介课后习题导读:就爱阅读网友为您分享以下“自考 Java 语言程序设计(一)第八章 Java 异常处理及输入输出流简介课后习题”的资讯,希望对您有所帮助,感谢您对 的支持!更多优质自考资料尽在百度贴吧自考乐园俱乐部(http:/ Java 语言程序设计(一)第八章 Java 异常处理及输入输出流简介课后习题八、Java异常处理及输入输出流简介 1列出 5 个常见的异常。 2写出 Java 语言的异常处理机制的优点。 3为什么异常处理技术不应该用于常规的程序控制? 4引起异常产生的条件是什么? 5异常没有被捕获将会发生什

2、么? 6编写一个程序,以说明 catch(Exception e)如何捕获各种异常。 7下面的代码段中 finally 语句块会被执行吗? public class ExceptionExam3 public static void main(String args) try int a=new int3; System.exit(0); catch(ArrayIndexOutOfBoundsException e) System.out.println(发生了异常); finally System.out.println(Finally); 8throws 的作用是什么? 9应在程序的什么地

3、方使用异常处理? 10下面的代码有什么错误吗? class ExceptionExam throw new ExceptionExam(); 11异常类型匹配的处理方式。程序功能:首先输出“这是一个异常处理的例子”,然后在你程序中主动地产生一个 ArithmeticException 类型被 0 除而产生的异常,并用catch 语句捕获这个异常。最后通过 ArithmeticException类的对象 e 的方法 getMessage 给出异常的具体类型并显示出来。 12根据所给创建自定义异常类的使用格式,编写一个自定义异常的小程序。 13什么叫流?流式输入输出有什么特点? 14Java 流被

4、分为字节流、字符流两大流类,两者有什么区别? 15File 类有哪些构造函数和常用方法? 16利用文件输入输出流编写一个实现文件拷贝的程序,源文件名和目标文件名通过命令行参数传入。 17编写一个程序,在当前目录下创建一个子目录 test,在这个新创建的子目录下创建一个文件,并把这个文件设置成只读。 18位置指针的作用是什么?RandomAccessFile 类提供了哪些方法实现对指针的控制? 19编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字、其他符号的字符数。 20编写一个程序,从键盘输入一串字符,从屏幕输出并将其存入 a.txt 文件中。采集者退散 21编写一个程序,从键盘

5、输入 10 个整数,并将这些数据排序后在标准输出上输出。 参考答案 1答:内存耗尽、数组下标超出边界、被 0 除、非法的方法参数、算法溢出处。来源:考试大的美女编辑们 2答:(1)Java 通过面向对象的方法进行异常处理,把各种异常事件进行分类,体现了良好的层次性,提供了良好的接口,这种机制对于具有动态特 性的复杂提供了强有力的控制方式。 (2)Java 的异常处理机制使得处理异常的代码和“常规”代码分开,减少了代码的数量,增强了程序的可读性。 (3) Java 的异常处理机制使得异常事件可以沿调用栈自动向上传播,而不是 C 语言中通过函数的返回值来传播,这样可以传递更多的信息,并且简化了代码

6、的编写。 (4)由于把事件当成事件处理,利用类的层次性我们可以把多个具有相同父类的异常统一处理,也可以区分不同的异常分别处理,使用非常灵活。 3答:a. 异常处理用于不经常发生但通常导致程序终止的情况,因此要求编程人员为编译器的优化执行实现异常处理。b. 常规控制结构的控制流程通常比异常的更为清晰、交流更高。c. 在发生异常,并且没有释放异常发生之前分配的资源时,堆栈是展开的,所以会出现一些问题。d.“额外的”异常会妨碍真正错误类型的异常。这种使程序员更难 以跟踪大量的异常。 4答:异常产生的方式有 3 种。第一种是在某些内部错误时,Java 虚拟机可以产生异常,该异常不在你的程序控制范围内,

7、通常不作处理。第二种是由程序代码中的错误引起,这种异常需要你的程序处理。第三种是通过使用 throw语句手动生成的异常。 5答:未捕获的异常最终会导致程序非正常终止。 6public class ExceptionExam public static void main(String args) try int i=0; i=3/i;/将产生算术异常。 catch(ArithmeticException e)/找到了匹配的异常,执行该catch 块。 System.out.println(发生了ArithmeticException 异常); catch(AarryIndexOutOfBoun

8、dsException e)/不是匹配的异常,且不会再捕获 /异常,如果发生数组索引超出范围所产生的异常,将执行该 catch 块。 System.out.println(发生了AarryIndexOutOfBoundsException 异常); catch(Exception e) /前两个 catch 块均无法捕获 try 块中发生的异常时,才会执行该 catch 块。 System.out.println(发生了异常); finally System.out.println( 执行 d Finally); 7 答:无论是出于何种原因,只要执行离开 try/catch 代码块,就会执行

9、finally 代码块。即无论try 是否正常结束,都会执行 finally 定义的最后的代码。如果 try 代码块中的任何代码或它的任何 catch 语句从方法返回,也会执行 finally 代码块。但本题中在 try 代 码块中执行了“System.exit(0);”语句,执行了这一语句后,Java 虚拟机(JVM)将被终止。那么 finally 语句块一定不会被执行。 8答:在某些情况下,如果一个方法产生自己不处理或无法处理的异常,它就必须在throws 子句中声明该异常。 9答:通常,可以采用两种方式来报告错误:返回值和异常。在 Java 中异常处理很常用,虽然返回错误代码在某些情况下

10、是一种有效的方式,但是异常处理可以提供强大的结构化方法来处理异常。所以需要处理代码中的错误时就可以采用异常的方法进行处理。 10答:ExceptionExam 不是继承(扩展)Throwable 的子类,只有 Throwable 的子类可以由 throw抛出。所以,这一段代码会出错。 11 public class ExceptionExam1 public static void main(String args) try int i=0; i=3/i; catch(ArithmeticException e) System.out.println(异常是:+e.getMessage();

11、finally System.out.println(finally 语句被执行); 注意:如果在 catch 语句中声明的异常类是 Exception,catch 语句也能正确地捕获,这是因为 Exception 是 ArithmeticException 的父类。如果不能确定会发生哪种情况的异常,那么最好指定 catch 的参数为 Exception,即说明异常的类型为 Exception。 12 class Excp1 extends Exception class Excp2 extends Excp1 public class ExceptionExam7 public static

12、 void main(String args) throws Exception try throw new Excp2(); catch(Excp2 e) System.out.println(catch1); throw new Excp1(); catch(Excp1 e) System.out.println(catch2); throw new Exception(); catch(Exception e) System.out.println(catch3); finally System.out.println(finally); 说明:自定义异常类,关键是选择继承的超类必须是E

13、xception 或者其子类。用异常代表错误,而不要再使用方法返回值。 13答:所谓流是指同一台计算机或网络中不同计算机之间有序运动着的数据序列,Java 把这些不同来源和目标的数据都统一抽象为数据流。数据流可分为输入流和输出流,输入流代表从其他设备流入计算机的数据序列,输出流代表从计算机流向外部设备的数据序列。 流式输入输出的特点是数据的获取和发送沿数据序列的顺序进行,即每一个数据都必须等待排在它前面的数据,等前面的数据读入或送出之后才能被读写。所以流和队列一样,只能以“先进先出”的方式对其中的数据进行读写,而不能随意选择读写的位置。 14答:两者都作为 Object 类的直接子类,基本输入

14、流(无效 Stream)和基本输出流(OutputStream)是处理以 8 位字节为基本单位的字节流类;Reader 和 Writer 类是专门处理 16 位字符流的类。 15答:构造函数有: (1)public File(String pathname):创建一个对应于参数 pathname 的File 类对象。参数 pathname 是包含目录和文件名的字符串。如果没有文件名,则代表目录。 (2)public File(String parent , String child):该构造函数将 pathname分成两部分 parent 和 child,参数 parent 表示目录或文件所在

15、路径,参数 child 表示目录或文件名称。 (3)public File(File parent, String child):该构造函数与上面一个不同在于将 parent 的参数类型由 String 变为 File,代表parent 是一个已经创建的 File 类文件对象(指向目录) 。 常用方法有: (1)public boolean canWrite( ):返回文件是否可写。 (2)public boolean canRead( ):返回文件是否可读。 (3)public boolean createNewFile( ):当文件不存在时创建文件。 16 import java.io.*

16、; class CopyFile public static void main(String args) String file1,file2 ; int ch = 0 ; try file1=args0; file2=args1; File 无效 Stream fis = new File 无效Stream(file1); FileOutputStream fos=new FileOutputStream(file2); while (ch=fis.read()!=-1) fos.write(ch); fis.close(); fos.close(); catch(FileNotFound

17、Exception e) System.out.println(源文件:未找到!); catch(ArrayIndexOutOfBoundsException e) System.out.println(缺少运行参数!); System.exit(-1); catch (IOException e) System.out.println(e.toString(); 17答: import java.io.*; public class NewFile public static void main(String args) File f=new File(test); if(f.exists(

18、)f.isDirectory() System.err.println(目录:+f.toString()+已经存在 !); else if(f.mkdir() System.out.println(目录+f.getAbsolutePath()+创建结束 !); File f2=new File(f,my.txt); try f2.createNewFile(); f2.setReadOnly(); catch(IOException e) System.out.println(e.toString(); System.out.println(文件:+f2.getAbsoluteFile()+创建结束!); else System.out.println(目录+f.getAbsoluteFile()+创建失败!); 18答:要实现对文件的随机读取,也就是在文件的任何位置执行读写数据的操作,需要一个指针来指定读写的位置。在创建 RandomAccessFile 类对象的同时,系统自动创建了一个指向这个文件开头的指针,当执行读写操作后,指针自动指向被读写数据之后的第一个字节 处。指

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 自考

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报