java编写一个程序,输人存取金额时,如果非数值型,捕获异常并进行处理(系统异常)
时间: 2024-10-18 09:24:43 浏览: 18
java基础知识学习 & 期末考试试题含复习资料
在Java中,你可以使用try-catch-finally块来捕获用户输入非数值的情况,并抛出`InputMismatchException`异常。以下是一个简单的示例程序:
```java
import java.util.Scanner;
import java.util.InputMismatchException;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double balance = 0;
System.out.println("请输入账户初始余额(默认0元):");
try {
// 尝试从用户输入读取一个double类型的值
balance = scanner.nextDouble();
} catch (InputMismatchException e) {
// 如果输入不是数字,捕获异常并打印错误信息
System.out.println("输入错误,只接受数值,请重新输入:");
scanner.next(); // 清除输入流中的非法字符
return; // 结束当前循环,等待新的输入
}
// 没有异常发生,正常处理输入的金额
System.out.println("您已输入的初始余额为: " + balance);
// 最后的finally块用于清理资源,如关闭扫描器
finally {
scanner.close();
}
}
}
```
在这个程序中,当用户输入非数字字符时,`scanner.nextDouble()`会抛出`InputMismatchException`,然后在catch块中捕获并提示用户重新输入。最后,无论是否成功获取到数值,finally块都会确保扫描器被关闭。
阅读全文