当前位置:文档之家› Java作业实验六---异常处理

Java作业实验六---异常处理

提交方式:
把文件名改为学号姓名,提交文档和源码(只需提交最顶层包文件夹)
实验六异常处理
一、实验目的
1.学会利用Try-catch-finally语句来捕获和处理异常;
2.掌握自定义异常类的方法。

二、实验要求
1.通过编程理解系统异常处理的机制和创建自定义异常的方法。

2.掌握基础类。

三、实验内容
(一)异常处理机制
1. 编写使用try…catch 语句处理异常的程序文件Demo4_1.java,
编译并运行程序,并把运行结果复制在下面。

注意:如果在catch 语句中声明的异常类是Exception,catch 语句也能正确地捕获,这是因为Exception是ArithmeticException的父类。

如果不能确定会发生哪种情况的异常,那么最好指定catch的参数为Exception,即说明异常的类型为Exception。

2、源文件是Demo3_2.java。

要捕捉的异常是除数为零和数组下标越界。

通过修改a和c[]下标值体验程序。

【思考】
①先运行上面程序,观察运行结果。

②按下条件分别修改数据,编译后运行,观察输出结果,分析在try…catch块里那些语句没有被执行,为什么? 块外那些语句可被执行到,为什么?
修改a=0,保持c[2]=200;
保持a=10,修改c[3]=200,
修改a=0,修改c[3]=200;
③再添加一个catch{Exception e}{ },位置在最前面,观察编译信息,说明什么?
3、编写Demo3_3.java 程序,计算两数相除并输出结果。

使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。

源代码如下:
编译并运行,当输入除数为0时,将有异常出现,当输入的不是整数时,如将30输成了3o,出现的是另一种异常。

(二)自定义异常类
4、注意throw、throws的使用。

源文件是Demo3_4.java。

【思考】
①修改try...catch中语句z=div.DIV(100,0)入口参数,观察运行结果。

z=d.div(100,10);
z=d.div(100,0);
②将try...catch语句注释掉,观察编译信息。

③上面条件保持,在main函数后面加上throws MyException再重新编译,能否通过?然后运行观察结
果,得到什么结论?
2.编写程序Demo3_5.java,包含自定义异常,当输入数值为13和4时抛出该异常。

源代码如下:
class Ex3_5 extends Exception{
Ex3_5 (String msg){
super(msg);
}
}
【思考】编译并运行,分别取消注释上面程序中被注释的语句。

当释放a.setX(13)语句后,查看运行结果,当释放a.setX(4)语句后,查看运行结果,当释放a.setX(0)语句后,查看运行结果。

并给出结论
四、实验练习题
1.参考下面的程序,试修改程序,捕获相关异常,使得程序能正常运行。

[提示:用
错误数据测试,即可得到异常类名,运行时主方法参数输入abc 测试]
public class StringIndexOutOf
{
public static void main(String args[])
{
System.out.println("字符串索引越界异常");
String str=args[0];
System.out.println(“第四个字符为”+str.charAt(3));
int aa=Integer.parseInt(args[0]); System.out.println(“平方为”+aa*aa);
}
}
2.从命令行得到5个整数,放入一整型数组,然后打印输出,要求:如果输入数据
丌为整数,要捕获Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参
数丌足5个的异常(数组越界),显示“请输入至少5个整数”。

3.写一个方法void sanjiao(int a,int b,int c),判断三个参数是否能构成一个三角形,
如果丌能则抛出异常IllegalArgumentException,显示异常信息a,b,c+”丌能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。

4.自定义类Sanj,其中有成员x,y,z,作为三边长,构造方法Sanj(a,b,c)分别给x,y,z
赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,这2个方法中当三
条边丌能构成一个三角形时要抛出自定义异常NotSanjiaoException,否则显示正确信息。

在另外一个类中的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),显示三角形信息和面积,要求捕获异常。

相关主题