请编写一个Java程序,要求输入一个整数n,然后输出n个随机字母,如果n不在1到10之间,则抛出一个自定义的异常InvalidInputException,并在主函数中进行捕获和处理。
时间: 2024-03-18 12:41:10 浏览: 50
简单的java输入异常处理
5星 · 资源好评率100%
好的,以下是实现代码:
```java
import java.util.Random;
class InvalidInputException extends Exception {
public InvalidInputException(String message) {
super(message);
}
}
public class Main {
public static void main(String[] args) {
try {
int n = Integer.parseInt(args[0]);
if (n < 1 || n > 10) {
throw new InvalidInputException("Invalid input: n must be between 1 and 10.");
}
String letters = generateRandomLetters(n);
System.out.println(letters);
} catch (NumberFormatException e) {
System.out.println("Invalid input: n must be an integer.");
} catch (InvalidInputException e) {
System.out.println(e.getMessage());
}
}
private static String generateRandomLetters(int n) {
Random random = new Random();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
char letter = (char) (random.nextInt(26) + 'a');
sb.append(letter);
}
return sb.toString();
}
}
```
在这个程序中,我们定义了一个自定义的异常类InvalidInputException,当输入的n不在1到10之间时,我们将抛出这个异常。在主函数中,我们首先尝试将输入的参数解析为整数,如果解析失败则抛出NumberFormatException异常。如果解析成功,则检查n是否在1到10之间,如果不是则抛出InvalidInputException异常。如果一切正常,则调用generateRandomLetters函数生成随机字母,并输出到控制台。在捕获异常时,如果是InvalidInputException异常,则输出异常信息,如果是其他异常,则输出"Invalid input: n must be an integer."。
阅读全文