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

实验三 Java异常处理

实验三Java异常处理
一、实验目的
1)掌握Java异常的概念及工作机制
2)掌握异常的分类
3)掌握抛出异常语句的使用(throw)
4)掌握抛出捕获处理异常语句的使用(try…catch…finally)
5)掌握上抛异常语句的使用(throws)
6)掌握创建自定义异常
二、实验内容
自定义一个异常类,求两个数的最大公约数。

三、实验步骤
1)声明一个类,继承与Exception,用来处理求公约数时被除数小于除数抛出异常。

2)声明一个方法来求公约数。

3)在主方法里通过控制台输入二个人数并把求公约数的方法写在try{}中,catch{}填写出现的自定义的异常及ArithmeticException
异常。

四、实现代码
import java.util.Scanner;
class MyException extends Exception
{
int m,n;
public MyException(int m,int n)
{
this.m=m;
this.n=n;
}
public void process()
{
System.out.println("被除数小于除数!");
}
}
public class divisor{
int m,n;
public divisor(int m,int n)
{
this.m=m;
this.n=n;
}
public int div() throws MyException
{
int tmp;
if(m<n)
{
tmp=m;
m=n;
n=tmp;
}
while(m%n!=0)
{
m=n;
n=m%n;
}
return n;
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int m=in.nextInt();
int n=in.nextInt();
divisor d=new divisor(m,n);
try
{
if(m<n)
throw new MyException(m,n);
int result=d.div();
System.out.println(result);
}
catch(ArithmeticException e)
{
e.printStackTrace();
}
catch(MyException e)
{
e.process();
}
}
}
五、实验小结
1)在求公约数时既可以采用求余运算,也采用二者做减法运算,其后者的执行时间短效率高。

不管采用何种方法,最终得到
的结果都是一样。

2)理解异常是如何捕获以及抛出的,但对整体的异常理
解并不透彻,比如有没有一种异常定义是,定义所有的异常内,然后在通过各种异常判断把最终的异常确定下来。

3)如果我们想在出现异常中断的时候,执行异常后面的代码,则要实现的代码应该放在Finally{}。

当然Finally的代码不是一定会执行。

碰到了强制退出时则Finally中程序段也不会执行。

相关主题