Это проблема просит для получения двух 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”