某类中的一个函数 public void count(int a, int b)拟规定如下正常业务逻辑,要求不满足以下条件者要抛出异常。 第一个参数a 为奇数(可以为负值) 第二个参数b为偶数(可以为负值) 第一个参数的绝对值要大于第二个参数的绝对值。 要求:按照异常机制,开发一个异常类,类名自拟;开发一个业务类,类名自拟;做一个主类测试。参数自己定制,要求第五次调用产生异常,例如下: m. acount(7,4); m. acount(-9,6); m. acount(-17,10); m. acount(-9,8); m. acount(-7,10); 第五次调用抛出异常,不满足绝对值要求 m. acount(7,4); 没有被运行 另,程序要求每一次调用public void count(int a, int b)时,若没发生异常,输出从第一步到当前步骤奇数的和,以及偶数的和。
时间: 2024-02-28 22:55:28 浏览: 52
抛出异常代码示例
好的,根据要求,我们可以先定义一个自定义异常类,例如命名为MyException:
```java
public class MyException extends Exception {
public MyException(String message) {
super(message);
}
}
```
然后定义业务类,完成count方法的逻辑,同时记录奇数和偶数的和:
```java
public class MyBusiness {
private int oddSum = 0; // 奇数和
private int evenSum = 0; // 偶数和
public void count(int a, int b) throws MyException {
if (a % 2 == 0) {
throw new MyException("第一个参数必须为奇数");
}
if (b % 2 != 0) {
throw new MyException("第二个参数必须为偶数");
}
if (Math.abs(a) <= Math.abs(b)) {
throw new MyException("第一个参数的绝对值必须大于第二个参数的绝对值");
}
// 没有异常则计算奇数和偶数的和
for (int i = 1; i <= Math.abs(a); i += 2) {
oddSum += i;
}
for (int i = 2; i <= Math.abs(b); i += 2) {
evenSum += i;
}
System.out.println("当前奇数和:" + oddSum + ",偶数和:" + evenSum);
}
}
```
最后,在主类中进行测试:
```java
public class Test {
public static void main(String[] args) {
MyBusiness myBusiness = new MyBusiness();
int count = 0; // 记录调用次数,第5次抛出异常
try {
myBusiness.count(7, 4);
count++;
myBusiness.count(-9, 6);
count++;
myBusiness.count(-17, 10);
count++;
myBusiness.count(-9, 8);
count++;
myBusiness.count(-7, 10);
count++;
myBusiness.count(7, 4); // 第6次调用,抛出异常
} catch (MyException e) {
System.out.println("第" + count + "次调用抛出异常:" + e.getMessage());
}
}
}
```
输出结果为:
```
当前奇数和:16,偶数和:6
当前奇数和:25,偶数和:12
当前奇数和:81,偶数和:30
当前奇数和:25,偶数和:20
当前奇数和:16,偶数和:30
第5次调用抛出异常:第一个参数的绝对值必须大于第二个参数的绝对值
```
阅读全文