合肥学院java试验九.docx
- 文档编号:27201078
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:9
- 大小:43.83KB
合肥学院java试验九.docx
《合肥学院java试验九.docx》由会员分享,可在线阅读,更多相关《合肥学院java试验九.docx(9页珍藏版)》请在冰豆网上搜索。
合肥学院java试验九
《面向对象程序设计》实验报告
合肥院学院计算机科学与技术系
实验名称:
异常处理日期:
2014/11/20
姓名/学号:
专业/班级:
指导老师:
吴晓琴成绩:
一、实验目的:
(详见指导书,宋体小四)
理解java语言中独特的异常处理机制;
掌握异常处理方法;
正确地使用捕获异常和声明抛弃异常的两种异常处理的方法;
理解自定义异常类的使用;
理解抛出异常和声明抛出异常的区别与联系;
二、实验要求:
(详见指导书,宋体小四)
1.通过实验掌握捕获异常和声明抛弃异常的两种异常处理的方法;
2.程序必须能够捕获Integer.parseInt()产生的异常并作相应的处理;
3.程序必须能够将处理的相应的信息输出出来;
4.写出实验报告。
要求记录编译和执行Java程序当中的系统错误信息提材示,并给出解决办法。
(附运行界面、源代码)。
三、实验内容及过程:
(宋体小四,)
1.从命令行得到5个整数,放入一整型数组,然后打印输出,要求:
如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参数不足5个的异常(数组越界),显示“请输入至少5个整数”。
2.写一个方法voidsanjiao(inta,intb,intc),判断三个参数是否能构成一个三角形,如果不能则抛出异常IllegalArgumentException,显示异常信息a,b,c+”不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
3.自定义类Sanj,其中有成员x,y,z,作为三边长,构造方法Sanj(a,b,c)分别给x,y,z赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,这2个方法中当三条边不能构成一个三角形时要抛出自定义异常NotSanjiaoException,否则显示正确信息。
在另外一个类中的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),显示三角形信息和面积,要求捕获异常。
4.参考下面的程序,试修改程序,捕获相关异常,使得程序能正常运行。
[提示:
用错误数据测试,即可得到异常类名,运行时主方法参数输入abc测试]
publicclassStringIndexOutOf{
publicstaticvoidmain(Stringargs[]){
System.out.println("字符串索引越界异常");
Stringstr=args[0];System.out.println(“第四个字符为”+str.charAt(3));
intaa=Integer.parseInt(args[0]);System.out.println(“平方为”+aa*aa);
}
四、实验中的问题思考及讨论:
(列出你实验中出现的问题,及解决的问题和解决的思路)
有一些不懂的函数,通过阅读API文档和查书,加以理解。
五、实验总结:
(简单、准确的总结本次实验的主要内容,个人收获)
本次试验主要是用两种方法处理异常:
1.捕获异常(try-catch-finally)2.抛出异常(throw和throws)
6、源代码及运行结果
1.
importjava.io.*;
publicclassTestInt
{
publicstaticvoidmain(String[]args)
{
int[]array=newint[5];
try
{
for(inti=0;i<5;i++)
{
array[i]=Integer.parseInt(args[i]);//易出错,忘记把字符串转化为整数
}
}
catch(NumberFormatExceptione)
{
System.out.println("请输入整数");
}
catch(ArrayIndexOutOfBoundsExceptione)
{
System.out.println("请输入5个整数");
}
System.out.println("打印出来的结果为:
");
for(intj=0;j<5;j++)
{
System.out.println(array[j]);
}
}
}
2.
importjava.io.*;
publicclassTestSanJiao
{
publicstaticvoidmain(String[]args)
{
inta,b,c;
a=Integer.parseInt(args[0]);
b=Integer.parseInt(args[1]);
c=Integer.parseInt(args[2]);
SanJiaoXingsjx=newSanJiaoXing();
sjx.sanjiao(a,b,c);
}
}
classSanJiaoXing
{
voidsanjiao(inta,intb,intc)
{
try
{if(a+b>c&&a+c>b&&b+c>a)
{
System.out.println("可以构成三角形,三边长为:
");
System.out.println("a="+a+","+"b="+b+","+"c="+c);
}
else
thrownewIllegalArgumentException("不能构成三角形!
");
}
catch(IllegalArgumentExceptione)
{
System.out.println(e.toString());
}
}
}
3.
importjava.io.*;
publicclassTestTriangle
{
publicstaticvoidmain(String[]args)
{
inta,b,c;
a=Integer.parseInt(args[0]);
b=Integer.parseInt(args[1]);
c=Integer.parseInt(args[2]);
NotSanjiaoExceptionn=newNotSanjiaoException();
try
{
if(a+b>c&&a+c>b&&b+c>a)
{
Sanjs=newSanj(a,b,c);
s.showInfo();
doubled=s.getArea();
System.out.println("三角形的面积:
"+d);
}
else
thrown;
}
catch(NotSanjiaoExceptione)
{
System.out.println(e.toString());
}
}
}
classSanj
{
intx,y,z;
publicSanj(intx,inty,intz)
{
this.x=x;
this.y=y;
this.z=z;
}
publicvoidshowInfo()
{
System.out.println("三角形的三边长为:
"+x+""+y+""+z);
}
publicdoublegetArea()
{
intp=(x+y+z)/2;
returnMath.sqrt(p*(p-x)*(p-y)*(p-z));
}
}
classNotSanjiaoExceptionextendsException
{
NotSanjiaoException()
{
super("这三条边不能构成是三角形!
");
}
}
4.
publicclassStringIndexOutOf
{
publicstaticvoidmain(Stringargs[])
{
//System.out.println("字符串索引越界异常");
Stringstr=args[0];
try
{
System.out.println("第四个字符为"+str.charAt(3));
}
catch(StringIndexOutOfBoundsExceptione)
{
System.out.println("字符串索引越界异常");
}
intaa=Integer.parseInt(args[0]);
System.out.println("平方为"+aa*aa);
}
}
注:
报告内容不得雷同,否则视为抄袭,无成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 合肥 学院 java 试验