一、 实验目的
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 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 int result=d.div(); System.out.println(result); } catch(ArithmeticException e) { e.printStackTrace(); } catch(MyException e) { e.process(); } } } 五、实验小结 1)在求公约数时既可以采用求余运算,也采用二者做减法运算, 其后者的执行时间短效率高。不管采用何种方法,最终得到的结果都是一样。 2)理解异常是如何捕获以及抛出的,但对整体的异常理 解并不透彻,比如有没有一种异常定义是,定义所有的异常内,然后在通过各种异常判断把最终的异常确定下来。 3)如果我们想在出现异常中断的时候,执行异常后面的代码, 则要实现的代码应该放在Finally{}。当然Finally的代码不是一定会执行。碰到了强制退出时则Finally中程序段也不会执行。 因篇幅问题不能全部显示,请点此查看更多更全内容