JAVA调试环境及异常处理程序实验报告Word文件下载.docx
《JAVA调试环境及异常处理程序实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《JAVA调试环境及异常处理程序实验报告Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
7.掌握自定义异常类的创建方法。
【实验原理】
1.含有Applet的网页的HTML文件代码中部带有<
applet>
和<
/applet>
这样一对标记,支持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);
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.*;
Labelpr1,pr2;
TextFieldt1,t2;
pr1=newLabel("
t1=newTextField(7);
t2=newTextField(7);
OK"
b.addActionListener(this);
add(pr1);
add(pr2);
s=newStudent();
msg="
return"
+name+"
+id;
classNegativeExceptionextendsException
4.然而编写好的程序并不完全,比如说学号输入为零或负数时,会照原样输出;
学号输入字符时,程序却没反应。
这并不适合我们的使用,为此,我们使用java提供的异常类,使程序更完善。
Java提供了异常处理机制,当程序中发生异常时,程序产生一个异常事件,相应地生成异常对象。
系统从生成对象的代码开始,沿方法的调用栈逐层回溯,寻找相应的处理代码,并把异常对象交给该方法处理。
运行程序发现在学号输入框中输入字符时,程序无反应。
分析源代码s.setId(Integer.parseInt(t1.getText()));
可知执行时会出现NumberFormatException异常。
修改程序为
publicvoidactionPerformed(ActionEvente)
Try
catch(NumberFormatExceptionee)
msg="
学号必须是数字!
try块启动Java的异常处理机制,catch接收try块中可能产生的异常。
对于输入负数,输出也是这个负数的情况,需要自己定义异常类
学号输入出也相应改变为
voidsetId(intx)throwsNegativeException
if(x>
0)
elsethrownewNegativeException();
程序出再添加个catch语句,如下所示:
catch(NegativeExceptionee)
学号必须是正整数!
这样修改后,输入为负数时,就会输出一句话:
【实验结论】
(结果)
1.登陆界面如下图:
2.当学号输入字符(如kjh)时,程序输出一句:
3.学号输入为负数(如-1000)时,输出就会使一句话:
4.正确输入界面如下:
【实验小结】
(收获体会)
这次实验还让我熟悉了JAVA的运用,让我对这门课程和这个软件有了更好的认识,也让我明白了程序应该尽可能的适应用户,应该以人为本,毕竟人才是程序的主导,程序应该根据人来改变。
三、指导教师评语及成绩:
评语
评语等级
优
良
中
及格
不及格
1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强
2.实验方案设计合理
3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)
4实验结论正确.
成绩:
指导教师签名:
批阅日期:
附录1:
源程序
try
{
s.setId(Integer.parseInt(t2.getText()));
msg=s.toString();
msg="
catch(NegativeExceptionee)
s.name=t1.getText();
repaint();
g.drawString(msg,120,120);
classStudent
intid;
intage;
voidsetId(intx)throwsNegativeException
if(x>
id=x;
else
thrownewNegativeException();