Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带异常处理的java ATM程序模拟-无错误或完整输出_Java_Checked Exceptions - Fatal编程技术网

带异常处理的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(); 
}