JAVA调试环境及异常处理程序实验报告要点.docx
- 文档编号:25831798
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:14
- 大小:55.60KB
JAVA调试环境及异常处理程序实验报告要点.docx
《JAVA调试环境及异常处理程序实验报告要点.docx》由会员分享,可在线阅读,更多相关《JAVA调试环境及异常处理程序实验报告要点.docx(14页珍藏版)》请在冰豆网上搜索。
JAVA调试环境及异常处理程序实验报告要点
数学与计算科学学院
实验报告
实验项目名称JAVA调试环境及异常处理程序
所属课程名称面向对象技术
实验类型设计型
实验日期2014.4.1
班级信计12-2
学号201253100220
姓名马新宇
成绩
一、实验概述:
【实验目的】
1.了解Java语言的特点;熟悉Java编译和类加载的命令。
2.掌握Java简单程序的编写。
3.掌握JavaApplet程序的调试与实现。
4.掌握Java异常的概念及分类。
5.掌握抛出异常语句的使用(throw)及捕捉处理异常语句的使用(try…catch)。
6.掌握上抛异常语句的使用(throws)。
7.掌握自定义异常类的创建方法。
【实验原理】
1.含有Applet的网页的HTML文件代码中部带有这样一对标记,支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet。
JavaApplet是用Java语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE或Netscape)解释执行能够产生特殊效果的程序。
当Applet用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。
由于Applet是在用户的计算机上执行的,所以它的执行速度受网络带宽或者Modem存取速度的限制,用户可以更好地欣赏网页上Applet产生的多媒体效果。
2.Java中,类加载器把一个类装入Java虚拟机需要经过三个步骤来完成:
装载:
查找和导入.class文件
链接:
检查装入.class文件的正确性,然后,Java虚拟机为变量分配内存,设置默认值
初始化:
把符号引用变成直接引用。
。
。
3.每当产生异常后,如果没有程序进行相应的处理,则程序会中断的现象。
那么,此时实际上一旦产生一个异常之后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句进行捕获的话,则可以进行异常处理,如果没有的话,则交给JVM进行处理,当try语句捕获到了异常之后,会与catch中的异常类型进行匹配,如果匹配成功,则使用此catch语句进行处理。
【实验环境】
MicrosoftwindowsXPprofessional
Microsoftoffice2007
Microsoftvisualj++6.0
JDK
二、实验内容:
【实验方案】
1.建立classstudent类,用于输入学生相关信息,类中包括姓名、学号、年龄,还定义三个方法:
姓名输入的方法voidsetName(Stringy)、学号输入方法voidsetId(intx)及输出方法publicStringtoString()
2.定义主类publicclassAAextendsAppletimplementsActionListener,调用了publicvoidinit(){}对输入输出界面进行处理,publicvoidactionPerformed(ActionEvente)方法用于显示相关界面
3.用JDK6.0环境建立连续空间,编译程序。
自定义一个异常类,处理用户程序中特定的逻辑运行错误。
用try块定义可能出现的异常,用catch语句捕捉和处理try块中的异常语句。
try
{可能抛出异常语句;}
catch
{异常处理语句组;}
【实验过程】(实验步骤、记录、数据、分析)
1.在桌面建立自己的工作目录;
2.启用j++6.0开发软件,创建j++工程并命名,当进入编辑窗口时,先进行保存操作,存于桌面自己创建的工作目录,该文件名必须与主类名相同,即WE.java,然后才编写JavaApplet程序;
3.测试JavaApplet程序,源代码程序编译如果出错,按出错信息查找源文件中的错误并进行修改。
修改后又重新运行该命令进行重新编译,直到编译成功。
编译好以后的程序:
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassWEextendsAppletimplementsActionListener
{
Labelpr1,pr2,pr3;
TextFieldt1,t2,t3;
Buttonb;
Students;
Stringmsg;
publicvoidinit()
{
pr1=newLabel("姓名:
");
pr2=newLabel("学号:
");
pr3=newLabel("年龄:
");
t1=newTextField(8);
t2=newTextField(8);
t2=newTextField(8);
b=newButton("确定");
b.addActionListener(this);
add(pr1);add(t1);
add(pr2);add(t2);
add(pr3);add(t3);
add(b);
s=newStudent();
msg="";
}
}
publicvoidactionPerformed(ActionEvente)
{
s.setId(Integer.parseInt(t2.getText()));
msg=s.toString();
repaint();
}
publicvoidpaint(Graphicsg)
{
g.drawString(msg,100,100);
}
}
classStudent
{
Stringname;
longid;
intage;
voidsetId(intx)
{
id=x;
}
voidsetAge(intz)
{
Age=z;
}
publicStringtoString()
{
return"姓名:
"+name+"学号:
"+id+"年龄:
"+age;
}
}
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassWEextendsAppletimplementsActionListener
{
Labelpr1,pr2;
TextFieldt1,t2;
Buttonb;
Students;
Stringmsg;
publicvoidinit()
{
pr1=newLabel("姓名:
");
pr2=newLabel("学号:
");
t1=newTextField(7);
t2=newTextField(7);
b=newButton("OK");
b.addActionListener(this);
add(pr1);add(t1);
add(pr2);add(t2);
add(b);
s=newStudent();
msg="";
}
publicvoidactionPerformed(ActionEvente)
{
s.setId(Integer.parseInt(t2.getText()));
msg=s.toString();
repaint();
}
publicvoidpaint(Graphicsg)
{
g.drawString(msg,100,100);
}
}
classStudent
{
Stringname;
longid;
intage;
voidsetId(intx)
{
id=x;
}
publicStringtoString()
{
return"姓名:
"+name+"学号:
"+id;
}
}
classNegativeExceptionextendsException
{
}
4.然而编写好的程序并不完全,比如说学号输入为零或负数时,会照原样输出;学号输入字符时,程序却没反应。
这并不适合我们的使用,为此,我们使用java提供的异常类,使程序更完善。
Java提供了异常处理机制,当程序中发生异常时,程序产生一个异常事件,相应地生成异常对象。
系统从生成对象的代码开始,沿方法的调用栈逐层回溯,寻找相应的处理代码,并把异常对象交给该方法处理。
运行程序发现在学号输入框中输入字符时,程序无反应。
分析源代码s.setId(Integer.parseInt(t1.getText()));可知执行时会出现NumberFormatException异常。
修改程序为
publicvoidactionPerformed(ActionEvente)
{
Try
{
s.setId(Integer.parseInt(t2.getText()));
msg=s.toString();
}
catch(NumberFormatExceptionee)
{
msg="学号必须是数字!
";
}
}
try块启动Java的异常处理机制,catch接收try块中可能产生的异常。
对于输入负数,输出也是这个负数的情况,需要自己定义异常类
classNegativeExceptionextendsException
{
}
学号输入出也相应改变为
voidsetId(intx)throwsNegativeException
{
if(x>0)
id=x;
elsethrownewNegativeException();
}
程序出再添加个catch语句,如下所示:
publicvoidactionPerformed(ActionEvente)
{
try
{
s.setId(Integer.parseInt(t2.getText()));
msg=s.toString();
}
catch(NumberFormatExceptionee)
{
msg="学号必须是数字!
";
}
catch(NegativeExceptionee)
{
msg="学号必须是正整数!
";
}
}
这样修改后,输入为负数时,就会输出一句话:
学号必须是正整数!
【实验结论】(结果)
1.登陆界面如下图:
2.当学号输入字符(如kjh)时,程序输出一句:
学号必须是数字!
3.学号输入为负数(如-1000)时,输出就会使一句话:
学号必须是正整数!
4.正确输入界面如下:
【实验小结】(收获体会)
这次实验还让我熟悉了JAVA的运用,让我对这门课程和这个软件有了更好的认识,也让我明白了程序应该尽可能的适应用户,应该以人为本,毕竟人才是程序的主导,程序应该根据人来改变。
三、指导教师评语及成绩:
评语
评语等级
优
良
中
及格
不及格
1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强
2.实验方案设计合理
3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)
4实验结论正确.
成绩:
指导教师签名:
批阅日期:
附录1:
源程序
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassWEextendsAppletimplementsActionListener
{
Labelpr1,pr2;
TextFieldt1,t2;
Buttonb;
Students;
Stringmsg;
publicvoidinit()
{
pr1=newLabel("姓名:
");
pr2=newLabel("学号:
");
t1=newTextField(7);
t2=newTextField(7);
b=newButton("OK");
b.addActionListener(this);
add(pr1);add(t1);
add(pr2);add(t2);
add(b);
s=newStudent();
msg="";
}
publicvoidactionPerformed(ActionEvente)
{
try
{
s.setId(Integer.parseInt(t2.getText()));
msg=s.toString();
}
catch(NumberFormatExceptionee)
{
msg="学号必须是数字!
";
}
catch(NegativeExceptionee)
{
msg="学号必须是正整数!
";
}
s.name=t1.getText();
repaint();
}
publicvoidpaint(Graphicsg)
{
g.drawString(msg,120,120);
}
}
classStudent
{
Stringname;
intid;
intage;
voidsetId(intx)throwsNegativeException
{
if(x>0)
id=x;
else
thrownewNegativeException();
}
publicStringtoString()
{
return"姓名:
"+name+"学号:
"+id;
}
}
classNegativeExceptionextendsException
{
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 调试 环境 异常 处理 程序 实验 报告 要点
![提示](https://static.bdocx.com/images/bang_tan.gif)