Это проблема просит для получения двух int
и, если не получим числа, среди 0 и 2,147,483,647 ( Integer. MAX_VALUE
), мы должны делать catch
, который возвращает два исключения: ArithmeticException
или InputMismatchException
в зависимости от input “неправильно”.
Para isso, vamos fazer um попробуй/поймай
. В этом случае, давайте сканировать внутри try
, пройдя следующий код:
try (Scanner scanner = new Scanner(System.in)) { int x = scanner.nextInt(); int y = scanner.nextInt(); System.out.println(x / y);
Здесь, взяли inputs x
и y
и выполняем деление, как он просит проблему.
Далее, мы будем использовать catch
. Для этого мы провели исключения, запрашиваемых в скобках рядом с именем нашего выбора и печатаем исключение в случае, если программа идентифицирует, что есть проблема. Выглядит это так:
} catch (ArithmeticException arithmeticEx) { System.out.println(arithmeticEx); } catch (InputMismatchException inputMismatchEx) { System.out.println(inputMismatchEx.getClass().getName()); }
На втором catch
используем .getClass().getName ()
потому, что существуют два исключения InputMismatchException
что просил. С помощью методов самого класса мы можем вернуть ошибку правильно, в зависимости от ввода каждой попытки.
=========
Окончательный код выглядит следующим образом, в на-майне:
try (Scanner scanner = new Scanner(new File("input.txt"))) { int x = scanner.nextInt(); int y = scanner.nextInt(); System.out.println(x / y); } catch (ArithmeticException arithmeticEx) { System.out.println(arithmeticEx); } catch (InputMismatchException inputMismatchEx) { System.out.println(inputMismatchEx.getClass().getName()); }
=========
Характеристика:
Исключение InputMismatchException : Oracle Арифметическое исключение : Oracle Попробуйте заблокировать : Oracle Блок перехвата : Оракул
============
Эта публикация является частью серии упражнений разрешены в Java на HackerRank. Перейдите полная серия:
- HackerRank #6 | Сканер e Конец файла
- HackerRank #7 | Int в строку/String в Int
- Хакерский рейтинг #8 | Дата и время
- HackerRank #9 | Блок статического инициализатора
- HackerRank #10 | Форматировщик валют
- HackerRank #10 | Форматировщик валют
- HackerRank #12 | Введение в строки
- HackerRank #13 | Сравнение подстрок
- HackerRank #14 | Абстрактный класс
- Хакерский рейтинг #18 | BigInteger
- HackerRank #19 | Loops II
- HackerRank #20 | Реверс строки
- HackerRank #23 | Ключевое слово Instanceof
- HackerRank #26 | Дженерики
- HackerRank #27 | 1D Массив
- HackerRank #28 | Анаграммы
- HackerRank #33 | Arraylist
- HackerRank #34 | Попытка обработки исключений/Перехват
- HackerRank #36 | Обработка исключений
- Хакерский рейтинг #37 | Список
- HackerRank #38 | Подмассив
- Хакерский рейтинг #39 | HashSet
- HackerRank #40 | Удаление Java из очереди
Оригинал: “https://dev.to/beatrizmaciel/hackerrank-34-exception-handling-try-catch-144f”