import static java.lang.System.out;
import java.util.Scanner;
import java.text.NumberFormat;

public class InventoryD {

   public static void main(String args[]) {
       final double boxPrice = 3.25;
       Scanner keyboard = new Scanner(System.in);
       NumberFormat currency = NumberFormat.getCurrencyInstance();

       out.print("Сколько коробок вы насчитали? ");
       String numBoxesIn = keyboard.next();

       try {
           int numBoxes = Integer.parseInt(numBoxesIn);

           if (numBoxes < 0) {
               throw new OutOfRangeException();
           }

           if (numBoxes > 1000) {
               throw new NumberTooLargeException();
           }           
           
           out.print("Общая стоимость равна: ");
           out.println(currency.format(numBoxes * boxPrice));
       } 
       
       catch (NumberFormatException e) {
           out.println("Это не число.");
       } 
       
       catch (OutOfRangeException e) {
           out.print(numBoxesIn);
           out.println("? Это невозможно!");
       }

       catch (Exception e) {
           out.print("Что-то здесь не так, ");
           out.print("но что именно, непонятно. ");
           out.println("Тип исключения неизвестен.");
       }

       out.println("Вышли из блоков try-catch. ");

       keyboard.close();
   }
}
