处理无效的整数输入异常并确保资源释放 编写一个java程序 ,该程序接收用户从控制台输入的一个值
时间: 2024-12-18 11:28:26 浏览: 14
当编写Java程序处理用户从控制台输入的整数时,我们需要考虑到可能会遇到无效输入的情况,如非数字字符。为了捕获这种异常、提示用户并确保资源得到正确释放,可以使用try-catch-finally结构。下面是一个简单的示例:
```java
import java.util.Scanner;
import java.util.InputMismatchException;
public class InputHandler {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int input;
try {
System.out.println("请输入一个整数:");
input = scanner.nextInt();
} catch (InputMismatchException e) {
// 处理无效输入异常
System.out.println("输入错误,请输入一个整数!");
scanner.next(); // 清除上一次输入的非法字符
scanner.nextLine(); // 移动到下一行,准备接受新的输入
} finally {
// 确保关闭Scanner
if (scanner != null) {
scanner.close();
}
System.out.println("程序结束.");
}
// 这里可以对有效输入进行后续操作...
}
}
```
在这个程序中,如果用户输入的是非数字字符,`nextInt()`会抛出`InputMismatchException`,我们捕获这个异常,并清除当前输入,然后继续提示用户输入。最后,无论是否发生异常,`finally`块都会确保`Scanner`对象被正确关闭,释放系统资源。
阅读全文