[alishev] Java для начинающих. #7: Ввод данных. Класс Scanner.
Java Scaner. Принцип работы.
@mekzul
Объект класса java.util.Scanner принимает форматированный объект (ввод) и преобразует его в двоичное представление. При вводе могут использоваться данные из консоли, файла, строки или любого другого источника, реализующего интерфейсы Readable или ReadableByteChannel...
Управление исключительными ситуациями в Java Немного модифицируем код класса Assets, добавим в него возможность пользовательского ввода с помощью класса Scanner. На вводе должна приниматься цена актива с типом float. Если вводить цифру, тогда код будет работать нормально Укажите текущую цену актива: 123 Актив Биржевая акция Но если на ввод подать нечто отличное от цифры, тогда получаем сообщение об ошибке Укажите текущую цену актива: fdgh4 Exception in thread "main" java.util.InputMismatchException at java.base/java.util.Scanner.next(Scanner.java:1594) at java.base/java.util.Scanner.nextFloat(Scanner.java:2496) at Assets.main(Assets.java:10) В этом случае код завершает свою работу аварийно. Для того, чтобы этого не происходило, используется конструкция try – catch – finally. Код с высоким риском аварийного завершения заключается в блок try – catch, код, с который должен выполняться как в случае нормального, так и в случае аварийного завершения программы, заключается в блок finally. В приведённом примере в try – catch заключён код, ответственный за чтение результатов ввода из командной строки и создание классов с использованием введённых данных. В блок finally помещён код, закрывающий поток чтения данных. В этом случае при попытке ввести некорректные данные получаем следующее: Укажите текущую цену актива: чпрапр54 Неверный тип данных и мы уверены в том, что наш код отработал до самого завершения и не упал.