带异常处理的java ATM程序模拟-无错误或完整输出
输出不是一个完整的输出,异常也没有得到处理。 请帮忙带异常处理的java ATM程序模拟-无错误或完整输出,java,checked-exceptions,Java,Checked Exceptions,输出不是一个完整的输出,异常也没有得到处理。 请帮忙 public class ATM { private String message; public ATM(String m) { if (m == null || m.trim().equals("")) throw new IllegalArgumentException("ATM name cannot be empty"); else { me
public class ATM {
private String message;
public ATM(String m) {
if (m == null || m.trim().equals(""))
throw new IllegalArgumentException("ATM name cannot be empty");
else {
message = m;
System.out.println("Name is " + message);
}
}
// public String getMessage() {
// return message;
// }
public void withdraw(Card c, double amount) throws NotEnoughMoneyInAccountException {
double bal = c.getBalance();
System.out.println(bal);
if (c == null)
throw new IllegalArgumentException("card cannot be null");
if (amount < 0)
throw new IllegalArgumentException("please enter amount");
if (bal > amount)
throw new NotEnoughMoneyInAccountException("money in account is less");
else {
bal = bal - amount;
c.setBalance(bal);
System.out.println(bal);
}
}
public void deposit(Card c, double amount) {
double bal = c.getBalance();
if (amount == 0)
throw new IllegalArgumentException("Please enter amount to deposit");
bal = bal + amount;
System.out.println(bal);
}
}
public class Card {
private double balance;
private String owner;
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
}
public class NotEnoughMoneyInAccountException extends Exception
{
public NotEnoughMoneyInAccountException(String m)
{
super(m);
}
}
public class TestATM {
public static void main(String[] args) {
// TODO Auto-generated method stub
try
{
System.out.println("Starting");
Card c1 = new Card();
c1.setOwner("Shweta");
c1.setBalance(500);
System.out.println(c1.getOwner());
ATM atm = new ATM("SBI");
atm.withdraw(c1, 200);
atm.deposit(c1, 200);
}
catch (NotEnoughMoneyInAccountException e) {
// TODO Auto-generated catch block
e.getMessage();
}
catch(Exception e)
{
e.getMessage();
}
}
}
当我将atm名称字符串消息输入为null时,应该相应地处理异常,但不会发生这种情况。
即使我输入amounttodraw<0,它也应该进入if循环并抛出一个必须在主程序中处理的异常,这两种情况都不会发生
我也没有遇到任何错误。您的问题在于:
catch (NotEnoughMoneyInAccountException e) {
// TODO Auto-generated catch block
e.getMessage();
}
catch(Exception e)
{
e.getMessage();
}
e、 获取消息;我会告诉你消息,但你什么都不做。
替换那些e.getMessage;e.printStackTrace调用 您应该使用IDE并学习调试程序。它将允许您逐步了解输入空值时发生的情况。@AlexM开发人员在没有IDE的情况下应该可以很容易地解决这个问题。如果不是,他真的不应该使用IDE
catch (NotEnoughMoneyInAccountException e) {
// TODO Auto-generated catch block
e.getMessage();
}
catch(Exception e)
{
e.getMessage();
}