JAVA实验7-9+答案(2)

2018-12-08 21:11

\”是创建一个异常,因此B是正确的。

8.下列描述了Java语言通过面相对象的方法进行异常处理的好处,请选出不在这些好处范围之内的一项( C )

A.把各种不同的异常事件进行分类,体现了良好的继承性 B.把错误处理代码从常规代码中分离出来 C.可以利用异常处理机制代替传统的控制流程

D.这种机制对具有动态运行特性的复杂程序提供了强有力的支持 【解析】异常处理机制不能代替传统的流程控制。

二、编程题

1.编写一个系统自动抛出的、系统自行处理的数组大小为负数的程序。

【编程分析】

当编写的程序中没有处理异常的语句时,系统会自动抛出异常,并自行进行处理。 【参考程序】

public class X7_3_1 {

public static void main(String[] args){ int[] a = new int[-5]; for(int i=0; i

【运行结果】

Exception in thread \ at X7_3_1.main(X7_3_1.java:3)

2.编写一个由throw抛出的、系统自行处理的数组下标越界的程序。 【编程分析】

当由throw抛出异常后,如果程序本身不进行异常处理,Java系统将采用默认的处理方式进行处理。 【参考程序】

import java.io.*;

public class X7_3_2 {

public static void main(String[] args)throws IOException{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); int[] a = new int[5]; int n = Integer.parseInt(br.readLine()); if(n>5) // 当输入的n值大于5时将由throw抛出异常 throw new ArrayIndexOutOfBoundsException(); System.out.println(\程序继续执行\ for(int i=0; i

System.out.println(); } }

【运行结果】

8 Exception in thread \ at C1.main(C1.java:9)

3.编写一个系统自动抛出的、由try-catch捕捉处理的分母为0以及数组下标越界的程序。 【编程分析】

当在try语句块中出现分母为0的情况时,如果在catch参数中有ArithmeticException对象,则就能捕捉到该异常并进行处理;同样,当在try语句块中出现分母为数组下标越界的情况时,如果在catch参数中有ArrayIndexOutOfBoundsException对象,则就能捕捉到该异常并进行处理。 【参考程序】

import java.io.*;

public class X7_3_3 { public static void main(String args[]) throws IOException{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); System.out.println(\请输入两个整数:\ int a = Integer.parseInt( br.readLine()); int b = Integer.parseInt( br.readLine());

try{ // 当输入的b为0时,就会出现算术异常 System.out.println(a/b); }

catch(ArithmeticException e){ // 捕捉算术异常并进行处理 System.out.println(\出现被0除的情况!\ } int c[] =new int[4], sum = 0; try{ // 当出现数组下标越界时就会抛出异常 for(int i = 0; i<5; i++) sum += c[i]; System.out.println( \ } catch(ArrayIndexOutOfBoundsException e){// 捕捉数组下标越界异常并处理 System.out.println(\数组下标越界!\ } } }

【运行结果】

请输入两个整数: 20 0 出现被0除的情况! 数组下标越界!

4.编写一个由throw抛出的、由try-catch捕捉处理的分母为0以及数组下标越界的程序。 【编程分析】

当在程序出现异常之前利用throw语句来抛出异常,可以做到防患于未然,提前进行异常处理,将由被动处理异常转变为主动防止异常发生。 【参考程序】

import java.io.*;

public class X7_3_4 { public static void main(String args[]) throws IOException{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr);

System.out.println(\请输入两个整数:\int a = Integer.parseInt( br.readLine()); int b = Integer.parseInt( br.readLine()); try{ if(b==0) throw new ArithmeticException(\抛出算术异常\ System.out.println(a/b); }

catch(ArithmeticException e){ e.printStackTrace();

System.out.println(\出现被0除的情况!\}

int c[] ={1, 2, 3, 4}, sum = 0; try{ for(int i = 0; i<5; i++) { if(i >= 4) throw new ArrayIndexOutOfBoundsException(\抛出数组下标越界 sum += c[i]; System.out.println( \ } }

catch(ArrayIndexOutOfBoundsException e){ e.printStackTrace(); System.out.println(\数组下标越界!\}

异常\ } }

5.自定义两个异常类NumberTooBigException和NumberTooSmallException,在其中定义各自的构造方法,分别打印输出“发生数字太大异常”和“发生数字太小异常”。然后在主类中定义一个带throws的方法numberException(int x),当x>100时通过throw抛出NumberTooBigException异常,当x<0时通过throw抛出NumberTooSmallException异常;最后在main()方法中调用该方法,实现从键盘中输入一个整数,如果输入的是负数,引发

NumberTooSmallException异常,如果输入的数大于100,引发。NumberTooBigException异常,否则输出“没有发生异常”。

【编程分析】本题主要考察自定义异常的方法。

第一步:定义异常类NumberTooBigException class NumberTooBigException extends Exception{ NumberTooBigException(){ super(\发生数字太大异常 \ } }

第二步:定义异常类NumberTooSmallException class NumberTooSmallException extends Exception{ NumberTooSmallException(){

super(\发生数字太小异常\ } }

第三步:在主类X7_3_5中定义numberException()方法。 public static void numberException(int x)

throws NumberTooBigException, NumberTooSmallException{ if(x>100) throw new NumberTooBigException(); else if (x<0) throw new NumberTooSmallException(); else System.out.println(\没有异常发生\; }

第四步:在main()方法中调用numberException()方法并捕捉和处理由此方法引起的异常。

【参考程序】

import java.io.*;

public class X7_3_5 { public static void main(String args[]) throws IOException{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); System.out.print(\请输入一个整数:\ int a = Integer.parseInt( br.readLine()); try{ numberException(a); }catch(NumberTooBigException e){ e.printStackTrace(); }catch(NumberTooSmallException e){ e.printStackTrace(); } } public static void numberException(int x) throws NumberTooBigException,

NumberTooSmallException{

if(x>100) throw new NumberTooBigException(); else if (x<0) throw new NumberTooSmallException(); else System.out.println(\没有异常发生\; } }

class NumberTooBigException extends Exception{ NumberTooBigException(){ super(\发生数字太大异常 \ } }

class NumberTooSmallException extends Exception{ NumberTooSmallException(){

}

实验9

一、选择题

1.下列说法中错误的一项是( B )。

A.构件是一个可视化的能与用户在屏幕上交互的对象 B.构件能够独立显示出来

C.构件必须放在某个容器中才能正确显示 D.一个按钮可以是一个构件

【解析】构件不能独立显示,它必须放在某个容器中才能正确显示。 2.进行Java基本GUI设计需要用到的包是( C )。

A.java.io B.java.sql C.java.awt D.java.rmi 【解析】进行Java基本GUI设计需要用到的包是java.awt和javax.swing 3.Container是下列哪一个类的子类( D )?

A.Graphics B.Window C.Applet D.Component 【解析】Container类是由Component类派生的。 4.java.awt.Frame的父类是( B )。

A.java.util.Window B.java.awt Window C.java.awt Panel D.java.awt.ScrollPane 【解析】java.awt.Frame的父类java.awt Window。

5.下列哪个方法可以将MenuBar加入Frame中( D )?

A.setMenu() B.addMenuBar() C.add() D.setMenuBar() 【解析】可以将MenuBar加入Frame中的方法是setMenuBar()。 6.下列叙述中,错误的一项是( D )。

A.采用GridLayout布局,容器中的每个构件平均分配容器空间 B.采用GridLayout布局,容器中的每个构件形成一个网络状的布局

}

super(\发生数字太小异常\


JAVA实验7-9+答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:菩萨兵第二课时教学设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: