编写程序:创建类Computer,该类有一个计算两个整数的最大公约数的方法,如果该方法的参数是负数,则该方法抛出自定义异常;对Computer类进行验证。
package a;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Computer {
//辗转相除法
int gcd(int a,int b) throws ComputerException {
if(a<0 || b<0)//传来的参数错误,抛出异常
{
throw new ComputerException();
}
while(b!=0)//如果b等于0,计算结束,a就是最大公约数;
{
int r=a%b;//否则,计算a除以b的余数,让a等于b,而b等于那个余数;
a=b;
b=r;
}
return a;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Scanner in=new Scanner(System.in);
int a,b;
System.out.println("输入两个整数(a,b):");
a=in.nextInt();
String s=in.next();
b=Integer.parseInt(s);
Computer c=new Computer();
System.out.println("a和b的最大公约数为:"+c.gcd(a, b));
}catch(ComputerException e1){
System.out.println("ComputerException:输入大于0的整数");
}catch(InputMismatchException e2) {
System.out.println("InputMismatchException:输入格式错误");
}catch(NumberFormatException e3) {
System.out.println("NumberFormatException:输入整数");
}
}
}
class ComputerException extends Exception{//创建自定义异常
}
运行结果:
?
|