java编写一个程序,完成从某账户取款和存款的操作。 输人存取款金额时, 如果非数值型,捕获异常并进行处理(系统异常)。 操作账户类时,如果取款数大于余额则作为异常处理(自定义异常)。
时间: 2024-10-19 17:08:27 浏览: 28
JAVA实现账户取款和存款操作
在Java中,我们可以创建一个简单的银行账户类`BankAccount`来进行存款和取款操作,并处理可能出现的异常。首先,我们需要定义一个`CustomException`自定义异常,用于处理取款超出余额的情况。接下来是一个示例程序:
```java
import java.util.Scanner;
import java.text.DecimalFormat;
class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
class BankAccount {
private double balance;
public BankAccount(double initialBalance) {
this.balance = initialBalance;
}
// 存款方法
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
System.out.println("存款成功,当前余额为:" + new DecimalFormat("#.00").format(balance));
} else {
throw new IllegalArgumentException("存款金额必须是非负数");
}
}
// 取款方法
public void withdraw(double amount) throws CustomException {
if (amount >= 0 && amount <= balance) {
balance -= amount;
System.out.println("取款成功,当前余额为:" + new DecimalFormat("#.00").format(balance));
} else {
throw new CustomException("取款金额超出余额");
}
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
BankAccount account = new BankAccount(1000); // 初始化余额
while (true) {
System.out.println("\n请选择操作:\n1. 存款\n2. 取款\n3. 退出");
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.print("请输入存款金额:");
try {
double depositAmount = scanner.nextDouble();
account.deposit(depositAmount);
} catch (Exception e) {
System.out.println("发生错误:" + e.getMessage());
}
break;
case 2:
System.out.print("请输入取款金额:");
try {
double withdrawAmount = scanner.nextDouble();
account.withdraw(withdrawAmount);
} catch (CustomException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println("发生错误:" + e.getMessage());
}
break;
case 3:
System.exit(0);
break;
default:
System.out.println("无效选择,请重新输入");
}
}
}
}
```
在这个程序中,用户通过输入数字选择存款或取款,然后输入相应的金额。如果输入的不是数值,会抛出`InputMismatchException`,我们捕获这个异常并在外部处理。对于取款操作,如果金额超过余额,会触发我们自定义的`CustomException`。
阅读全文