当前位置:文档之家› 实验5 异常处理

实验5 异常处理

实验五:java异常处理
实验目的:
1.了解Java异常处理机制的优点
2.了解Java异常的种类
3.掌握异常的捕获与处理
4.掌握异常的抛出
5.熟悉用户自定义异常
6.了解异常处理原则
实验步骤:
一.异常捕获和处理的练习
1. 下面源代码要捕捉的异常是除数为零和数组下标越界。

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

2. 源代码如下:
3. 编写并完善上述代码,编译运行代码,查看程序执行结果。

●按下条件分别修改数据,编译后运行,观察输出结果,分析在try…catch块里哪些语句没有被执行,为什么?块外哪些语句可被执行到,为什么?
(1) 修改a=0,保持c[2]=200;
(2) 保持a=10,修改c[3]=200;
(3) 修改a=0,修改c[3]=200。

二.自定义异常的定义和使用的练习
1. 设计两个数求商的程序,并设定一个异常类,判断两数相除时,除数是否为零,当除数为零时将抛给自定义异常类,并输出除数为零。

2. 部分源代码如下:
3. 分析上述代码,将division方法体中的代码补充完整,判断输入的除数是否为0。

如果为0,要抛出Di visorIsNotZeroException异常;如果不为0,则计算这个数的商。

并按要求创建自定义异常类DivisorIsNotZ eroException。

在main方法中已经给出如何输入数据和调用所写方法。

4. 代码完善后,编译运行代码,输入下表数据进行验证,如果抛出异常填“Y”,否则填“N”。

表6-2-1 测试数据
●分析自定义异常是如何创建的?
import java.util.Scanner;
class DivisorIsNotZeroException extends Exception
{
public DivisorIsNotZeroException(String message)
{
super(message);
}
}
public class MyExceptionTest {
public static double division(double dividend, double divisor) throws DivisorIsNotZeroException {
Double d = new Double(divisor);
if (0 == pareTo(0.0))
{
throw new DivisorIsNotZeroException("除数为0");
}
else
{
return (dividend / divisor);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入被除数:");
double dividend = sc.nextDouble();
System.out.println("请输入除数:");
double divisor = sc.nextDouble();
try {
double result = division(dividend, divisor);
System.out.println("计算的商= " + result);
} catch(DivisorIsNotZeroException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
}。

相关主题