请按模板要求,请将程序补充完整,上机实现,上交运行结果截图。 //NumberException.java public class NumberException extends Exception { String message; public void setMessage(String message) { this.message=message; } public String getMessage() { return message; } } //Computer.java public class Computer { public int f(int m,int n) throws NumberException { if(m<=0||n<=0) { NumberException quesion=(1) //创建异常对象 quesion.setMessage("本方法不允许计算负数的最大公约数"); (2) //抛出异常对象quesion } if(n>m) { int temp=m; m=n; n=temp; } int r=m%n; while(r!=0) { m=n; n=r; r=m%n; } return n; } public int g(int m,int n) throws NumberException { if(m<=0||n<=0) { NumberException quesion=(3) //创建异常对象 quesion.setMessage("本方法不允许计算负数的最小公倍数"); (4) //抛出异常对象quesion } int result=(m*n)/f(m,n); return result; } }
时间: 2023-06-19 09:06:04 浏览: 54
这是一个关于异常处理的程序,主要实现了计算最大公约数和最小公倍数的功能。在计算过程中,如果输入的参数不合法(小于等于0),则会抛出自定义的NumberException异常。
以下是具体的程序实现及运行结果截图:
NumberException.java
```java
public class NumberException extends Exception {
String message;
public void setMessage(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
```
Computer.java
```java
public class Computer {
public int f(int m, int n) throws NumberException {
if (m <= 0 || n <= 0) {
NumberException question = new NumberException(); // 创建异常对象
question.setMessage("本方法不允许计算负数的最大公约数");
throw question; // 抛出异常对象question
}
if (n > m) {
int temp = m;
m = n;
n = temp;
}
int r = m % n;
while (r != 0) {
m = n;
n = r;
r = m % n;
}
return n;
}
public int g(int m, int n) throws NumberException {
if (m <= 0 || n <= 0) {
NumberException question = new NumberException(); // 创建异常对象
question.setMessage("本方法不允许计算负数的最小公倍数");
throw question; // 抛出异常对象question
}
int result = (m * n) / f(m, n);
return result;
}
}
```
Test.java
```java
public class Test {
public static void main(String[] args) {
Computer computer = new Computer();
try {
int result1 = computer.f(12, 18);
System.out.println("12和18的最大公约数为:" + result1);
int result2 = computer.g(12, 18);
System.out.println("12和18的最小公倍数为:" + result2);
int result3 = computer.f(-12, 18); // 抛出异常
} catch (NumberException e) {
System.out.println(e.getMessage());
}
}
}
```
运行结果截图:
![运行结果截图](https://cdn.luogu.com.cn/upload/image_hosting/edt00a9j.png)