JAVA 100道题(19)

19.编写一个程序,模拟银行转账过程,处理可能的余额不足异常。

下面是一个简单的Java程序,用于模拟银行转账过程,并处理可能的余额不足异常。

首先,我们定义一个BankAccount类,该类包含账户的基本信息(如账户名和余额)以及一个transfer方法用于转账。如果转账导致余额不足,transfer方法将抛出InsufficientBalanceException异常。

然后,我们定义一个InsufficientBalanceException类,该类继承自Exception类,用于表示余额不足的异常情况。

最后,我们在Main类中创建两个BankAccount对象,并模拟转账过程。

复制代码

java复制代码

|---|----------------------------------------------------------------------------------------------------|
| | // BankAccount.java |
| | public class BankAccount { |
| | private String name; |
| | private double balance; |
| | |
| | public BankAccount(String name, double balance) { |
| | this.name = name; |
| | this.balance = balance; |
| | } |
| | |
| | public void deposit(double amount) { |
| | this.balance += amount; |
| | } |
| | |
| | public void withdraw(double amount) throws InsufficientBalanceException { |
| | if (amount > balance) { |
| | throw new InsufficientBalanceException("Insufficient balance in account " + name); |
| | } |
| | this.balance -= amount; |
| | } |
| | |
| | public void transfer(BankAccount receiver, double amount) throws InsufficientBalanceException { |
| | withdraw(amount); |
| | receiver.deposit(amount); |
| | } |
| | |
| | public String getName() { |
| | return name; |
| | } |
| | |
| | public double getBalance() { |
| | return balance; |
| | } |
| | } |
| | |
| | // InsufficientBalanceException.java |
| | public class InsufficientBalanceException extends Exception { |
| | public InsufficientBalanceException(String message) { |
| | super(message); |
| | } |
| | } |
| | |
| | // Main.java |
| | public class Main { |
| | public static void main(String[] args) { |
| | BankAccount account1 = new BankAccount("Alice", 1000); |
| | BankAccount account2 = new BankAccount("Bob", 500); |
| | |
| | try { |
| | account1.transfer(account2, 600); // Alice transfers 600 to Bob |
| | System.out.println("Transfer successful."); |
| | System.out.println("Alice's balance: " + account1.getBalance()); |
| | System.out.println("Bob's balance: " + account2.getBalance()); |
| | } catch (InsufficientBalanceException e) { |
| | System.out.println("Transfer failed: " + e.getMessage()); |
| | } |
| | } |
| | } |

在上面的示例中,我们创建了两个BankAccount对象:account1(属于Alice,余额为1000)和account2(属于Bob,余额为500)。然后,我们尝试从account1account2转账600元。由于account1的余额足够,转账将成功执行,并打印出转账后的余额。如果我们尝试转账的金额超过账户的余额,transfer方法将抛出InsufficientBalanceException异常,并在catch块中捕获该异常,打印出相应的错误消息

相关推荐
用户7783366132113 小时前
用 React Hook 封装搜索数据:useSerp 的防抖、缓存与错误处理
python·api
小夏coding3 小时前
从"一把梭"到"精妙拆解" —— 滑动窗口计时框架的设计演进
java·后端
MacroZheng4 小时前
同事问我:"Claude Code经常失忆,不怕它把项目搞炸?",我:"怕,三个Markdown文件给它装个永不丢失的外置大脑!"
java·人工智能·后端
十年Java程序媛6 小时前
深度实战:JDK21 虚拟线程 + HikariCP 生产正确配比、坑点、监控全套
java·spring boot
xiaoqiMikko6 小时前
有人在搜一个不存在的 Tomcat 版本
java·tomcat
65岁退休Coder7 小时前
LangGraph v1.2.9 节点容错策略 & 流式输出 & 持久化记忆管理
后端·python·langchain
用户3126874877209 小时前
ConcurrentHashMap 怎么保证线程安全?从分段锁到 CAS+synchronized
java
vipxieliang9 小时前
ValidX vs Apache Commons Validator:功能与性能对比
java·spring boot
SimonKing9 小时前
升级Spring Boot 4后,从 Jackson 2 到 3,到底有哪些变化
java·后端·程序员
ikun_文10 小时前
Django框架路由Router的使用
python·pycharm·django