请编写一个Java程序,要求输入一个整数n,然后输出n个随机字母,如果n不在1到10之间,则抛出一个自定义的异常InvalidInputException,并在主函数中进行捕获和处理。
时间: 2024-03-22 22:37:31 浏览: 54
好的,以下是Java程序的代码实现:
```java
import java.util.Random;
class InvalidInputException extends Exception {
public InvalidInputException(String message) {
super(message);
}
}
public class RandomLetters {
public static void main(String[] args) {
try {
int n = Integer.parseInt(args[0]);
if (n < 1 || n > 10) {
throw new InvalidInputException("输入的整数n必须在1到10之间");
}
String letters = generateRandomLetters(n);
System.out.println(letters);
} catch (InvalidInputException e) {
System.out.println("捕获到自定义异常:" + e.getMessage());
} catch (NumberFormatException e) {
System.out.println("输入的参数不是整数:" + e.getMessage());
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("请输入一个整数参数n");
}
}
private static String generateRandomLetters(int n) {
String letters = "";
Random random = new Random();
for (int i = 0; i < n; i++) {
char c = (char) (random.nextInt(26) + 'a');
letters += c;
}
return letters;
}
}
```
程序中定义了一个自定义异常`InvalidInputException`,当输入的整数n不在1到10之间时抛出该异常。在主函数中,使用`try-catch`结构捕获可能抛出的异常,并进行相应的处理。如果捕获到`InvalidInputException`异常,输出异常信息;如果捕获到`NumberFormatException`异常,说明输入的参数不是整数,输出异常信息;如果捕获到`ArrayIndexOutOfBoundsException`异常,说明没有输入参数,输出提示信息。
程序中还定义了一个`generateRandomLetters`方法,用于生成n个随机字母。在该方法中使用了`java.util.Random`类生成随机数,并将生成的随机数转化为对应的字母。最后将生成的随机字母拼接成一个字符串并返回。
阅读全文