第九章-Java异常处理练习

上传人:cl****1 文档编号:564625029 上传时间:2022-08-28 格式:DOCX 页数:8 大小:71.11KB
返回 下载 相关 举报
第九章-Java异常处理练习_第1页
第1页 / 共8页
第九章-Java异常处理练习_第2页
第2页 / 共8页
第九章-Java异常处理练习_第3页
第3页 / 共8页
第九章-Java异常处理练习_第4页
第4页 / 共8页
第九章-Java异常处理练习_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《第九章-Java异常处理练习》由会员分享,可在线阅读,更多相关《第九章-Java异常处理练习(8页珍藏版)》请在金锄头文库上搜索。

1、第九章 异常在 Java 应用程序中,异常处理是保证程序正常、可靠运行的一个重要方面,在前边 已经遇到了简单的异常处理。本章实验将主要针对程序中常用的异常的处理及异常的应 用。9.1 实验一:异常处理及应用实验目的(1). 了解异常的基本概念、异常的的产生和异常处理的过程。(2). 基本掌握异常在应用程序中的应用。实验要求编写应用程序,在程序中对常见的异常进行捕捉并作相应的处理。实验内容实验示例 9.1.1 在上一章 8.2.1 的实验示例测试中,若没有输入答案或输入非数字 字符,则在处理过程中会出现数据格式异常,修改实验示例 8.2.1 创建的 Exercises 类, 添加捕获并处理异常的

2、程序代码。实现该示例的步骤如下: 简要分析根据题意,首先需要确定会产生异常的程序段,然后使用 trycatch 结构进行捕捉和 处理异常地处理。由于主要处理数据格式异常,它由输入时的错误引起,所以,在处理异 常时,就是返回到输入处,重新输入数据。 根据上述简要分析,给出如下修改后的参考程序代码 (Exercise.java) :/* 这是一个小学生综合训练题测试的应用程序* 程序的名称 :Exercise.java* 程序中捕捉处理数据格式异常 (NumberFormatException)*/import java.awt.*;import java.awt.event.*;import j

3、ava.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(+ran

4、d.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)sta

5、rt.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(); /*KeyListener 接口方法实现 */ public void keyPressed(K

6、eyEvent e) / if(e.getKeyCode()!=e.VK_ENTER) return; / compute(); / 调用 compute() 成员方法调用 compute() 成员方法当按一个键时调用它如果不是按了 Enter 键,则不处理public void keyReleased(KeyEvent ke) /* 当需要时,输入相关处理代码 */public void keyTyped(KeyEvent ke) /* 当需要时,输入相关处理代码 */当一个键被释放时调用它当输入一个字符键时调用它/* 成员方法设置运算符 public void setOperator()

7、/*设置运算符方法if(n150&n250) if(n150,n1n2else if(n150) if(n210) op.setText(-); /n150,n210else op.setText(/); / n150,n250) if(n110) op.setText(+); /n250,n110进行加法运算进行减法运算进行减法运算进行除法运算进行加法运算else op.setText(*); /n250,n1n2&n2n2,n210else if(n110|n210) op.setText(*); /n1=10进行乘法运算进行除法运算或 n2=10 进行乘法运算else op.setTex

8、t(+); / 其他进行加法运算 成员方法 : 运算及答案处理 */public void compute()float x=0; / 定义变量try / 本题正确结果的计算与实际答题结果的比较if(op.getText().equals(+) x=n1+n2;else if(op.getText().equals(-) x=n1-n2;else if(op.getText().equals(*) x=n1*n2;else if(op.getText().equals(/) x=n1/n2;catch(NumberFormatException e) JOptionPane.showMessa

9、geDialog(null, answer.requestFocus();数据格式错误,请重新输入数据 !);if(x=Float.parseFloat(answer.getText() right+;return; catch(Exception e1) JOptionPane.showMessageDialog(null,e1.toString();return;count+;if(count=total) / 测试结束JOptionPane.showMessageDialog(null, 总题目数 +total+; 答对 +right+ 道 , 花费时间 +(System.current

10、TimeMillis()-timenum)/1000+秒 !);System.exit(0);n1=rand.nextInt(100)+1; / 产生下一题n2=rand.nextInt(100)+1;num1.setText(+n1);num2.setText(+n2);setOperator(); / 设置运算符号 answer.setText();answer.requestFocus(); 编译 Exercise.java 程序,生成 Exercise.class 类文件, 以供其他应用程序所用。 程序及分析在 compute() 方法中使用了 trycatch 结构捕捉并处理可能出现

11、的数据格式异常( NumberFormatException) 和其他异常 (Exception) ,当在结果栏中没有输入内容或输入非 数字字符按“ Enter ”键或单击“下一题”按钮时,获取结果栏中的字符串并将它转换为 数值时会产生数据格式异常 ( NumberFormatException) ,处理的办法是使用对话框提示错 误信息,并定位到结果栏让训练者重新输入题目答案。 编写测试程序,测试 Exercise类的功能。测试程序代码如下:import javax.swing.*;public class TestExercises extends JFrameTestExercises()

12、add(new Exercises(30); /选 30 道题进行训练setVisible(true);pack();setDefaultCloseOperation(3);public static void main(String args)new TestExercises();编译并运行测试程序,会出现如图9-1a的对话框,单击“开始”按钮,进入如图9-1b9-1b答题屏幕界面9-1a选择测试题目数对话框的答题界面,可以输入题目答案,然后按“Enter ”或单击“下一题”按钮进入下一题,9-1c的消息对话框,此时,可若在答题时没输入答案或输入非数字字符,则会出现如图单击“确定”按钮,返

13、回到应答栏,重新输入应答数据。最后在完成答题后,会出现如图9-1d的结果对话框。9-1c异常信息对话框9-1d结果信息对话框自由练习9.1修改上一章自由练习8.1建立的输入学生信息程序,捕捉并处理当输入入学成绩时的数据错误。实验示例9.1.2编写程序,实现如图9-2的图9-2实验示例9.1.2屏幕界面用户界面,完成一个简单的计算器应用程序。要 求:可以进行+、=、*、/四种运算;为了操作方 便,输入运算数后按“ Enter ”键连续进行下一数 运算,并保留用鼠标单击“下一个”按钮连续进行下一数运算;并要求输入的运算数在01000 之间。按“清零”按钮,结束当前的运算过程,开始一个新的运算。实现

14、该示例的步骤如下: 简要分析和实验示例 9.1.1 类似,使用 awt 和 swing 的组件 (JLabel 、 JTextField 、 JPanel 、JBurron 等 ) 构建用户界面。实现 ActionListener 接口完成按钮的功能;建立一个继承 KeyAdapter 适配器类的内部类 KeyPressListener ,在类中重写 keyPressed() 方法完成按 键功能的实现,同样只需关注“ Enter ”键。为保证输入的运算数在01000 之间,可以使用自定义异常实现,对输入 01000 之外的数据将视为数据超界。 根据上述简要分析,给出如下参考程序代码。首先给出自定义异常类:class DefException extends ExceptionDefException() / 构造方法super( 数据超界错误 !);public String toString() / 返回信息方法

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号