1、JAVA调试环境及异常处理程序实验报告要点数学与计算科学学院实 验 报 告实验项目名称 JAVA调试环境及异常处理程序 所属课程名称 面向对象技术 实 验 类 型 设计型 实 验 日 期 2014. 4. 1 班 级 信计12-2 学 号 201253100220 姓 名 马新宇 成 绩 一、实验概述:【实验目的】1.了解Java语言的特点;熟悉Java编译和类加载的命令。2.掌握Java简单程序的编写。3.掌握Java Applet程序的调试与实现。4.掌握Java异常的概念及分类 。5.掌握抛出异常语句的使用(throw)及捕捉处理异常语句的使用(trycatch)。6.掌握上抛异常语句的
2、使用(throws)。7.掌握自定义异常类的创建方法。【实验原理】1.含有Applet的网页的HTML文件代码中部带有 和这样一对标记,支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet。Java Applet 是用Java 语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE 或 Netscape)解释执行能够产生特殊效果的程序。当Applet用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。由于Applet是在用户的计算机上执行的,所以它的执行速度受网
3、络带宽或者Modem存取速度的限制,用户可以更好地欣赏网页上Applet产生的多媒体效果。2.Java中,类加载器把一个类装入Java虚拟机需要经过三个步骤来完成:装载:查找和导入.class文件链接:检查装入.class文件的正确性,然后,Java虚拟机为变量分配内存,设置默认值初始化:把符号引用变成直接引用。3.每当产生异常后,如果没有程序进行相应的处理,则程序会中断的现象。那么,此时实际上一旦产生一个异常之后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句进行捕获的话,则可以进行异常处理,如果没有的话,则交给JVM进行处理,当try语句捕获到了异常之后,会与catch中的异
4、常类型进行匹配,如果匹配成功,则使用此catch语句进行处理。【实验环境】Microsoft windows XP professionalMicrosoft office 2007Microsoft visual j+6.0JDK二、实验内容:【实验方案】1.建立class student类,用于输入学生相关信息,类中包括姓名、学号、年龄,还定义三个方法:姓名输入的方法void setName(String y)、学号输入方法void setId(int x)及输出方法public String toString()2.定义主类public class AA extends Applet i
5、mplements ActionListener,调用了public void init()对输入输出界面进行处理,public void actionPerformed(ActionEvent e)方法用于显示相关界面3.用JDK 6.0环境建立连续空间,编译程序。自定义一个异常类,处理用户程序中特定的逻辑运行错误。用try块定义可能出现的异常,用catch语句捕捉和处理try块中的异常语句。try 可能抛出异常语句;catch异常处理语句组;【实验过程】(实验步骤、记录、数据、分析)1.在桌面建立自己的工作目录;2.启用j+6.0开发软件,创建j+工程并命名,当进入编辑窗口时,先进行保存操
6、作,存于桌面自己创建的工作目录,该文件名必须与主类名相同,即WE.java,然后才编写Java Applet程序;3.测试Java Applet程序,源代码程序编译如果出错,按出错信息查找源文件中的错误并进行修改。修改后又重新运行该命令进行重新编译,直到编译成功。编译好以后的程序:import java.applet.* ;import java.awt.* ;import java.awt.event.* ;public class WE extends Applet implements ActionListener Label pr1,pr2,pr3; TextField t1,t2,t
7、3; Button b; Student s; String msg; public void init() pr1=new Label(姓名:); pr2=new Label(学号:); pr3=new Label(年龄:); t1=new TextField(8); t2=new TextField(8); t2=new TextField(8); b=new Button(确定); b.addActionListener (this); add(pr1);add(t1); add(pr2);add(t2); add(pr3);add(t3); add(b); s=new Student(
8、); msg=; public void actionPerformed(ActionEvent e) s.setId(Integer.parseInt(t2.getText();msg=s.toString();repaint(); public void paint(Graphics g) g.drawString(msg,100,100); class Student String name;long id;int age;void setId(int x) id=x; void setAge(int z) Age=z; public String toString() return 姓
9、名:+name+ 学号:+id+ 年龄: +age; import java.applet.*;import java.awt.*;import java.awt.event.*;public class WE extends Applet implements ActionListener Label pr1,pr2; TextField t1,t2; Button b; Student s; String msg; public void init() pr1=new Label(姓名:); pr2=new Label(学号:); t1=new TextField(7); t2=new T
10、extField(7); b=new Button(OK); b.addActionListener(this); add(pr1);add(t1); add(pr2);add(t2); add(b); s=new Student(); msg=; public void actionPerformed(ActionEvent e) s.setId(Integer.parseInt(t2.getText();msg=s.toString();repaint(); public void paint(Graphics g) g.drawString(msg,100,100); class Stu
11、dent String name;long id;int age;void setId(int x) id=x; public String toString() return姓名:+name+ 学号:+id; class NegativeException extends Exception 4.然而编写好的程序并不完全,比如说学号输入为零或负数时,会照原样输出;学号输入字符时,程序却没反应 。这并不适合我们的使用,为此,我们使用java提供的异常类,使程序更完善。Java提供了异常处理机制,当程序中发生异常时,程序产生一个异常事件,相应地生成异常对象。系统从生成对象的代码开始,沿方法的调用
12、栈逐层回溯,寻找相应的处理代码,并把异常对象交给该方法处理。运行程序发现在学号输入框中输入字符时,程序无反应。分析源代码s.setId(Integer.parseInt(t1.getText();可知执行时会出现NumberFormatException异常。修改程序为public void actionPerformed(ActionEvent e)Try s.setId(Integer.parseInt(t2.getText();msg=s.toString(); catch(NumberFormatException ee)msg=学号必须是数字!;try块启动Java的异常处理机制,c
13、atch接收try块中可能产生的异常。对于输入负数,输出也是这个负数的情况,需要自己定义异常类class NegativeException extends Exception学号输入出也相应改变为void setId(int x) throws NegativeExceptionif(x0)id=x;else throw new NegativeException();程序出再添加个catch语句,如下所示: public void actionPerformed(ActionEvent e) trys.setId(Integer.parseInt(t2.getText();msg=s.to
14、String(); catch(NumberFormatException ee)msg=学号必须是数字!; catch(NegativeException ee)msg=学号必须是正整数!;这样修改后,输入为负数时,就会输出一句话:学号必须是正整数!【实验结论】(结果)1.登陆界面如下图:2.当学号输入字符(如kjh)时,程序输出一句:学号必须是数字! 3.学号输入为负数(如-1000)时,输出就会使一句话:学号必须是正整数!4.正确输入界面如下:【实验小结】(收获体会) 这次实验还让我熟悉了JAVA的运用,让我对这门课程和这个软件有了更好的认识,也让我明白了程序应该尽可能的适应用户,应该以
15、人为本,毕竟人才是程序的主导,程序应该根据人来改变。 三、指导教师评语及成绩:评 语评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实验结论正确. 成 绩: 指导教师签名: 批阅日期:附录1:源 程 序import java.applet.*;import java.awt.*;import java.awt.event.*;public class WE extends Applet implements ActionListener Label pr1,pr2; TextField
16、 t1,t2; Button b; Student s; String msg; public void init() pr1=new Label(姓名:); pr2=new Label(学号:); t1=new TextField(7); t2=new TextField(7); b=new Button(OK); b.addActionListener(this); add(pr1);add(t1); add(pr2);add(t2); add(b); s=new Student(); msg=; public void actionPerformed(ActionEvent e) try
17、 s.setId(Integer.parseInt(t2.getText(); msg=s.toString(); catch(NumberFormatException ee) msg=学号必须是数字!; catch(NegativeException ee) msg=学号必须是正整数!; s.name=t1.getText(); repaint(); public void paint(Graphics g) g.drawString(msg,120,120); class Student String name; int id; int age; void setId(int x) throws NegativeException if(x0) id=x; else throw new NegativeException(); public String toString() return姓名:+name+ 学号:+id; class NegativeException extends Exception
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1