Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
15 / 1 / 0
Регистрация: 09.12.2018
Сообщений: 39

Можно ли это переделать, используя Exception (e.g. WrongInputConsoleParametersException) ?

21.12.2018, 19:37. Показов 1461. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
        public Month readMonth() {
            while (true) {
                if (!(sc.hasNextInt())) {               
                    String s = sc.nextLine().trim();                    
                    for (Month month : Month.values()) {
                        if (s.equalsIgnoreCase(month.name())) {                     
                            return month;                       
                        }                                           
                    }
                    System.out.println("The word you entered is not \nthe name of the month, try again");   
                    sc = new Scanner(System.in);
                } else {
                    int m = sc.nextInt();
                    if (m > 12 || m < 1) {
                        System.out.println("You entered the wrong month, try again.");
                        sc = new Scanner(System.in);
                    } else {
                        for (Month month : Month.values()) {
                            if (m == month.ordinal() + 1) {
                                return month;
                            }
                        }
                    }               
                }           
            }
        }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.12.2018, 19:37
Ответы с готовыми решениями:

Можно ли это сделать используя асинхронный подход?
Есть список ссылок. Нужно получить содержимое каждой ссылки. Напрашиваются треды, потоки. Можно ли ускорения добиться с помощью...

EXCEPTION создана для работы с ошибками и не должна их отключать. Так ли это?
Всем доброго времени суток...:) Столкнулся с такой проблемой, я генерирую свою ошибку по заданному статусу, если ошибку не объявлять в...

Можно ли утверждать, что в визуальном программировании: формы - это классы, а виджеты - это объекты?
Действительно ли это так или нет? Под виджетами я понимаю такие компоненты, как: TextBox, PushButton, TableView...

4
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
21.12.2018, 19:56
можно, но зачем?
0
15 / 1 / 0
Регистрация: 09.12.2018
Сообщений: 39
21.12.2018, 20:02  [ТС]
В задании сказано создать Exception (e.g. WrongInputConsoleParametersException) к предидущему заданию. Лучшего места где
ето сделать я не нашел, но как сделать ето не знаю.
(Скинул лиш часть кода предидущего задания)

PS: За мой русский прошу извенить.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
21.12.2018, 20:24
если не знаешь, значит надо что-то прочитать, наверно?
https://docs.oracle.com/javase... xceptions/
1
25 / 21 / 6
Регистрация: 10.12.2018
Сообщений: 115
21.12.2018, 22:34
Лучший ответ Сообщение было отмечено Kostyshyn как решение

Решение

else и ты вводишь новое значение??????? так не бывоет у тебя условие приняло параметры вот то как у тебя написано работать вообще не должно с учётом перевода консольного выовда надо сделать всё по другому

Добавлено через 1 час 48 минут
что касательно твоего метода - это что за бесконечность? иначе... иначе...
всё что далее только пример ты можешь сам многого на фантазировать с исключениями, с методами добавить проверку класса и как с ним работать
Java
1
2
3
4
5
public class WrongInputConsoleParametersException  extends Exception {
    WrongInputConsoleParametersException(String error) {
        super(error);
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import java.time.Month;
import java.util.Scanner;
import java.util.function.BiPredicate;
 
public class cyber {
    private static Scanner sc = new Scanner(System.in);
 
    /**
     * тут уже будем пилить условия
     *
     * @return
     */
    public Month readMonth() {
        Month rsl = null;
        boolean exit = false;
        try {
            while (!exit) {
                Integer s = sc.nextInt();
                rsl = this.relizfank(s, "The word you entered is not \nthe name of the month, try again");
                if (rsl != null) {
                    exit = true;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return rsl;
    }
 
 
    private Month relizfank(Integer s, String err) throws Exception {
        Month rsl = null;
        rsl = this.fank(s, err, (l, month) ->
                l == month.getValue()
        );
        return rsl;
    }
 
    /**
     * метод либо вернёт месяц либо выбросит исключение
     * методы принимает Integer  можно сделать для стринга и
     * в условие проверять какой тип пришёл тот метод и запускаем
     *
     * @param s
     * @param err
     * @param pr
     * @param <S>
     * @return
     * @throws Exception
     */
    private <S> Month fank(S s, String err, BiPredicate<S, Month> pr) throws Exception {
        Month rsl = null;
        boolean test = false;
        for (Month month : Month.values()) {
            if (pr.test(s, month)) {
                rsl = month;
                test = true;
                break;
            }
        }
        if (!test) {
            throw new WrongInputConsoleParametersException(err);
        }
        return rsl;
    }
 
    /**
     * запуск программы
     *
     * @param args
     */
    public static void main(String[] args) {
        cyber cyber = new cyber();
        System.out.println(cyber.readMonth());
    }
}
Кликните здесь для просмотра всего текста

1
JANUARY

Кликните здесь для просмотра всего текста
12
DECEMBER


Кликните здесь для просмотра всего текста
13
null
ru.job4j.forum.cyber.WrongInputConsolePa rametersException: The word you entered is not
the name of the month, try again



а у тебя же само условие построено не верно, думаю тебе надо разобраться с условиями
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2018, 22:34
Помогаю со студенческими работами здесь

Что это такое и как это можно сделать?
Это что то из стандартных компонентов или как в своем проекте сделать что то подобное? подразумевается пока не нажал окно скрыто, нажал,...

Dirty в коде: Кто может подсказать для чего это и можно ли как-то убрать это?
Добрый день. Увидел тут в используемом фреймворке переменную dirty, которая ограничивает работу методов. Кто может подсказать для чего это...

Как можно переделать код так чтобы можно было воспользоваться им на с#
usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Threading.Tasks; ...

нужно создать таблицу из 3 строк и 4 столбцов и заполнить её (любой информацией,это неважно) . Как это можно сделать ?
Здравствуйте.У меня возникла проблема. Помогите пожалуйста!Модуль в понедельник , про таблицы ничего не рассказывали , а преподаватель...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru