尝试构造类ArrayUtil,该类的方法int findMax(int[] arr, int begin, int end)能抛出IllegalArgumentException(表示参数错误)的方法。 正常执行要求begin<=end 如果begin>=end,抛出异常(IllegalArgumentException),异常信息为 “begin:x >= end:x” 如果begin<0,抛出异常(IllegalArgumentException),异常信息为 “begin:x < 0” 如果end>arr.length,抛出异常(IllegalArgumentException),异常信息为 “end:x > arr.length” 要求在findMax方法声明处声明此异常,在main函数里要捕获此异常,并输出异常类型(可用obj.getClass().getName())和异常信息 输入格式: 输入n,表示int数组大小 输入n个整数,放入数组。 输入m,表示begin和end的对数 输入m对整数,代表begin与end,然后调用ArrayUtils.findMax方法。 输出格式: 异常信息 数组的最大值
时间: 2024-04-08 12:33:31 浏览: 89
以下是构造的 `ArrayUtil` 类的代码,其中包含了 `findMax` 方法和相应的异常处理:
```java
class ArrayUtil {
static int findMax(int[] arr, int begin, int end) throws IllegalArgumentException {
if (begin >= end) {
throw new IllegalArgumentException("begin:" + begin + " >= end:" + end);
}
if (begin < 0) {
throw new IllegalArgumentException("begin:" + begin + " < 0");
}
if (end > arr.length) {
throw new IllegalArgumentException("end:" + end + " > arr.length");
}
int max = arr[begin];
for (int i = begin + 1; i < end; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
}
```
您可以在 `main` 函数中调用 `findMax` 方法,并捕获 `IllegalArgumentException` 异常。下面是一个示例程序:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = scanner.nextInt();
}
int m = scanner.nextInt();
for (int i = 0; i < m; i++) {
int begin = scanner.nextInt();
int end = scanner.nextInt();
try {
int max = ArrayUtil.findMax(arr, begin, end);
System.out.println("数组的最大值: " + max);
} catch (IllegalArgumentException e) {
System.out.println("异常类型: " + e.getClass().getName());
System.out.println("异常信息: " + e.getMessage());
}
}
}
}
```
您可以根据您的需求进行调整和修改。注意,数组下标从0开始计数。
阅读全文