У меня возникла проблема, когда я прошу пользователя высвободить сумму из своего баланса. У меня есть метод, называемый «убрать», и я передаю их баланс. Затем я хочу проверить, меньше ли сумма, которую они хотят снять, меньше их баланса. Если да, я хотел бы заставить пользователя повторить попытку.Исключение броска в Java
Пока он проверяет ввод, но я продолжаю получать выходные данные для каждой попытки.
public void withdraw (double balance)
{
System.out.println("How much would you like to withdraw?");
double amount = keyboard.nextDouble();
try
{
if(amount > balance)
{
throw new IncorrectWithdrawException();
}
}
catch(IncorrectWithdrawException e)
{
System.out.println(e.getMessage());
withdraw(balance);// keeps calling the method for a loop if they keep entering incorrect amount
}
balance = balance-amount;
System.out.println("You have withdrawn "+amount+ " and your new balance is " +balance);
}
Выход:
Что такое баланс? 100 Сколько вы хотите снять? 200 ------ ОШИБКА ------ Это не действительная сумма для снятия средств. Сколько вы хотели бы снять? 500 ------ ОШИБКА ------ Это не действительная сумма для снятия. Сколько вы хотели бы снять? 50
Вы отозвали 50,0 и ваш новый баланс 50,0 Вы отозвали 500,0 и ваш новый баланс -400,0 Вы отозвали 200,0 и ваш новый баланс -100,0
Я не хочу, последние два выходы ...
Что именно ваша проблема ? – Kishore
Вызов того же метода (рекурсивно) изнутри обработчика исключений? Теперь есть образец, который я раньше не видел ... – John3136
Возможно ли, что вы начинаете с нулевого баланса? – Andrew