自考

各地资讯
当前位置:考试网 >> 自考 >> 笔讲串讲 >> 工学类 >> Java 语言程序设计(一) >> 文章内容

排行热点

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

来源:考试网  [2009年11月25日]  【
  八、Java异常处理及输入输出流简介
  1.列出5个常见的异常。
  2.写出Java语言的异常处理机制的优点。
  3.为什么异常处理技术不应该用于常规的程序控制?
  4.引起异常产生的条件是什么?
  5.异常没有被捕获将会发生什么?
  6.编写一个程序,以说明catch(Exception e)如何捕获各种异常。
  7.下面的代码段中finally语句块会被执行吗?
  public class ExceptionExam3
  {
  public static void main(String [] args)
  {
  try
  {
  int [] a=new int[3];
  System.exit(0);
  }
  catch(ArrayIndexOutOfBoundsException e)
  {System.out.println("发生了异常");}
  finally
  {System.out.println("Finally");}
  }
  }
  8.throws的作用是什么?
  9.应在程序的什么地方使用异常处理?
  10.下面的代码有什么错误吗?
  class ExceptionExam{…}
  throw new ExceptionExam();
  11.异常类型匹配的处理方式。程序功能:首先输出“这是一个异常处理的例子”,然后在你程序中主动地产生一个 ArithmeticException 类型被0 除而产生的异常,并用catch 语句捕获这个异常。最后通过ArithmeticException类的对象e的方法getMessage 给出异常的具体类型并显示出来。
  12.根据所给创建自定义异常类的使用格式,编写一个自定义异常的小程序。
  13.什么叫流?流式输入输出有什么特点?来源:考的美女编辑们
  14.Java流被分为字节流、字符流两大流类,两者有什么区别?
  15.File类有哪些构造函数和常用方法?
  16.利用文件输入输出流编写一个实现文件拷贝的程序,源文件名和目标文件名通过命令行参数传入。
  17.编写一个程序,在当前目录下创建一个子目录test,在这个新创建的子目录下创建一个文件,并把这个文件设置成只读。
  18.位置指针的作用是什么?RandomAccessFile类提供了哪些方法实现对指针的控制?
  19.编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字、其他符号的字符数。
  20.编写一个程序,从键盘输入一串字符,从屏幕输出并将其存入a.txt文件中。采集者退散
  21.编写一个程序,从键盘输入10个整数,并将这些数据排序后在标准输出上输出。
  参考答案
  1.答:内存耗尽、数组下标超出边界、被0除、非法的方法参数、算法溢出处。来源:考的美女编辑们
  2.答:(1)Java通过面向对象的方法进行异常处理,把各种异常事件进行分类,体现了良好的层次性,提供了良好的接口,这种机制对于具有动态特 性的复杂提供了强有力的控制方式。(2)Java的异常处理机制使得处理异常的代码和“常规”代码分开,减少了代码的数量,增强了程序的可读性。(3) Java的异常处理机制使得异常事件可以沿调用栈自动向上传播,而不是C语言中通过函数的返回值来传播,这样可以传递更多的信息,并且简化了代码的编写。 (4)由于把事件当成事件处理,利用类的层次性我们可以把多个具有相同父类的异常统一处理,也可以区分不同的异常分别处理,使用非常灵活。
  3.答:a. 异常处理用于不经常发生但通常导致程序终止的情况,因此要求编程人员为编译器的优化执行实现异常处理。b. 常规控制结构的控制流程通常比异常的更为清晰、交流更高。c. 在发生异常,并且没有释放异常发生之前分配的资源时,堆栈是展开的,所以会出现一些问题。d.“额外的”异常会妨碍真正错误类型的异常。这种使程序员更难 以跟踪大量的异常。
  4.答:异常产生的方式有3种。第一种是在某些内部错误时,Java虚拟机可以产生异常,该异常不在你的程序控制范围内,通常不作处理。第二种是由程序代码中的错误引起,这种异常需要你的程序处理。第三种是通过使用throw语句手动生成的异常。
  5.答:未捕获的异常最终会导致程序非正常终止。BR>  6.public class ExceptionExam
  {
  public static void main(String [] args)
  {
  try
  {
  int i=0;
  i=3/i;//将产生算术异常。
  }
  catch(ArithmeticException e)//找到了匹配的异常,执行该catch块。
  {
  System.out.println("发生了ArithmeticException异常");
  }
  catch(AarryIndexOutOfBoundsException e)//不是匹配的异常,且不会再捕获
  //异常,如果发生数组索引超出范围所产生的异常,将执行该catch块。
  {
  System.out.println("发生了AarryIndexOutOfBoundsException异常");
  }
  catch(Exception e)
  //前两个catch块均无法捕获try块中发生的异常时,才会执行该catch块。
  {
  System.out.println("发生了异常");
  }
  finally
  { System.out.println("执行d Finally"); }
  }
  }
  7.答:无论是出于何种原因,只要执行离开try/catch代码块,就会执行finally代码块。即无论try是否正常结束,都会执行 finally定义的最后的代码。如果try代码块中的任何代码或它的任何catch语句从方法返回,也会执行finally代码块。但本题中在try代 码块中执行了“System.exit(0);”语句,执行了这一语句后,Java虚拟机(JVM)将被终止。那么finally语句块一定不会被执行。
首页 1 2 3 尾页
责编:admin

相关文章