第九章 Java异常处理练习

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第九章异常

在Java应用程序中,异常处理是保证程序正常、可靠运行的一个重要方面,在前边已经遇到了简单的异常处理。本章实验将主要针对程序中常用的异常的处理及异常的应用。

9.1 实验一:异常处理及应用

实验目的

(1). 了解异常的基本概念、异常的的产生和异常处理的过程。

(2). 基本掌握异常在应用程序中的应用。

实验要求

编写应用程序,在程序中对常见的异常进行捕捉并作相应的处理。

实验内容

实验示例9.1.1 在上一章8.2.1的实验示例测试中,若没有输入答案或输入非数字字符,则在处理过程中会出现数据格式异常,修改实验示例8.2.1创建的Exercises类,添加捕获并处理异常的程序代码。

实现该示例的步骤如下:

⑴简要分析

根据题意,首先需要确定会产生异常的程序段,然后使用try~catch结构进行捕捉和处理异常地处理。由于主要处理数据格式异常,它由输入时的错误引起,所以,在处理异常时,就是返回到输入处,重新输入数据。

⑵根据上述简要分析,给出如下修改后的参考程序代码(Exercise.java):

/*这是一个小学生综合训练题测试的应用程序

*程序的名称:Exercise.java

*程序中捕捉处理数据格式异常(NumberFormatException)

*/

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import javax.swing.*;

public class Exercises extends StudentScreen implements ActionListener,KeyListener

{ int count = 0;

int n1=0,n2=0;

int total=0;

int right=0;

long timenum=0;

Random rand=new Random();

public Exercises(int total)

{

this.total=total;

num1.setText(""+rand.nextInt(100));

num2.setText(""+rand.nextInt(100));

info.setText("测试题目数:"+total+"道");

answer.setEnabled(false); //在没开始答题之前,不得答题

start.addActionListener(this);

next.addActionListener(this);

next.addKeyListener(this);

answer.addKeyListener(this);

}

/***ActionListener接口方法实现***/

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==start)

{

start.setEnabled(false); //使开始按钮失效

answer.setEnabled(true); //开始答题

answer.requestFocus();

count=right=0;

n1=rand.nextInt(100);

n2=rand.nextInt(100);

num1.setText(""+n1);

num2.setText(""+n2);

timenum=System.currentTimeMillis();

}

else if(e.getSource()==next) compute(); //调用compute()成员方法

}

/***KeyListener接口方法实现***/

public void keyPressed(KeyEvent e) //当按一个键时调用它

{

if(e.getKeyCode()!=e.VK_ENTER) return; //如果不是按了Enter键,则不处理 compute(); //调用compute()成员方法

}

public void keyReleased(KeyEvent ke) //当一个键被释放时调用它

{

/*当需要时,输入相关处理代码*/

}

public void keyTyped(KeyEvent ke) //当输入一个字符键时调用它

{

/*当需要时,输入相关处理代码*/

}

/**********成员方法设置运算符***********/

public void setOperator() //设置运算符方法

{

if(n1>50&&n2>50) if(n150,n1n2进行减法运算else if(n1>50) if(n2>10) op.setText("-"); //n1>50,n2>10进行减法运算 else op.setText("/"); // n1>50,n2<10进行除法运算else if(n2>50) if(n1>10) op.setText("+"); //n2>50,n1>10进行加法运算 else op.setText("*"); //n2>50,n1<=10进行乘法运算

else if(n1>n2&&n2<10) op.setText("/"); // n1>n2,n2<10进行除法运算else if(n1<10||n2<10) op.setText("*"); //n1<=10或n2<=10 进行乘法运算

相关文档
最新文档