У меня есть некоторые проблемы с моим кодом ниже. В этой программе я ввожу описание, единицы и цену предмета. Я сделал два пользовательских класса исключений для возможности ввода пользователем отрицательного числа. Когда я запускаю программу, операторы catch работают, но мне кажется странным, что операторы после блока catch также выполняются. Поправьте меня, если я ошибаюсь, но разве программа не должна выполнять операторы после оператора catch, если есть исключение? У меня сложилось впечатление, что единственный способ сделать это — использовать блок finally. Любая помощь будет принята с благодарностью!
import java.util.Scanner;
public class RetailItemDemo
{
public static void main (String[] args)
{
Scanner keyboard = new Scanner(System.in);
RetailItem item = new RetailItem();
System.out.print("Item description: ");
item.setDescription(keyboard.nextLine());
try
{
System.out.print("Units on hand: ");
item.setUnitsOnHand(keyboard.nextInt());
System.out.print("Item price: ");
item.setPrice(keyboard.nextDouble());
}
catch (NegativeUnitsException nue)
{
System.out.println(nue);
}
catch (NegativePriceException npe)
{
System.out.println(npe);
}
System.out.println("\nThe item is a " + item.getDescription());
System.out.println("There are " + item.getUnitsOnHand() + " units on hand");
System.out.println("The item price is " + item.getPrice() + "\n");
}
}