Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 1
Регистрация: 10.10.2016
Сообщений: 76
1

Как выбросить IllegalArgumentException, если значение slot некорректно

26.01.2021, 16:53. Показов 1432. Ответов 1

Author24 — интернет-сервис помощи студентам
У меня есть класс Player и в нем есть метод shotWithWeapon, нужно выбросить исключение IllegalArgumentException, если значение slot некорректно. И чтоб в методе main при вводе не правильного значения с клавиатуры выводило соответствующее исключение.
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
  public class PlayerMain {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Player player = new Player();
 
        System.out.println("Список оружии: " + "\n0.Пистолет\n1.Автомат\n2.Рпг\n3.Рогатка\n4.Водный пистолет\n");
 
        System.out.format("У игрока %d слотов с оружием,"
                        + " введите номер, чтобы выстрелить,"
                        + " -1 чтобы выйти:%n"
                , player.getSlotsCount()
        );
 
        int slot = scanner.nextInt();
 
        while (slot != -1) {
            switch (slot) {
                case 0:
                    player.shotWithWeapon(0);
                    break;
                case 1:
                    player.shotWithWeapon(1);
                    break;
                case 2:
                    player.shotWithWeapon(2);
                    break;
                case 3:
                    player.shotWithWeapon(3);
                    break;
                case 4:
                    player.shotWithWeapon(4);
                    break;
                default:
 
                    System.out.println("Выберите оружие от 0 до 4");
                    break;
            }
            slot = scanner.nextInt();
        }
 
 
 
 
        System.out.println("Game Over!");
 
    }
}
В классе Player нужно выбросить исключение в методе shotWithWeapon

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
public class Player {
    // Указываем тип данных Weapon, который будет храниться в "слотах игрока"
 
    private Weapon[] weaponSlots;
 
    public Player() {
        weaponSlots = new Weapon[]{
                new Pistol(),
                new MachineGun(),
                new RPG(),
                new Slingshot(),
                new WaterGun()
        };
    }
 
    public int getSlotsCount() {
        return weaponSlots.length;
    }
 
    public void shotWithWeapon(int slot)  {
        //TODO проверить на выход за границы
        // Проверить на выход за границы
        // Выбросить IllegalArgumentException, если значение slot некорректно
 
        Weapon weapon = weaponSlots[slot];
        weapon.shot();
    }
 
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2021, 16:53
Ответы с готовыми решениями:

Решение квадратного уравнения: выбросить исключение, если дискриминант меньше 0
Даны коэффициенты a,b,c уравнения ax2+bx+c=0. Найти решение. Задачу вроде бы решил. Хочу добавить...

Проверка если значение столбца hour = 1, то вывести текст, если значение столбца = 0, Как реализовать?
На сайте уже есть регистрация, авторизация. И нужно сделать если у пользователя который...

Как обработать ошибки: - Recordset'a - если база закрывается некорректно, т.е. в следствии обшибки ?
Как обработать ошибки: - Recordset'a - если база закрывается некорректно, т.е. в следствии...

Как запретить переход по компонентам по нажатию Tab, если MaskEdit заполнен некорректно?
Уважаемые форумчане, здравствуйте. На форме имеется MaskEdit для ввода времени. Как запретить...

1
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
17573 / 10326 / 2820
Регистрация: 21.10.2017
Сообщений: 22,390
26.01.2021, 18:28 2
Java
1
if (slot > weaponSlots.length) throw new IllegalArgumentException("Out of range");
0
26.01.2021, 18:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.01.2021, 18:28
Помогаю со студенческими работами здесь

Как присвоить значение переменной если значение позже устанавливается в цикле?
Кратко: if($_SESSION != ""){ $row = mysql_num_rows(mysql_query("...")); if($row > 0) $panel...

Переменной k логического типа присвоить значение true в том случае, если массив n целых чисел упорядочен по возрастанию, i значение false если нет
Условие задачи: Переменной k логического типа присвоить значение true в том случае, если массив n...

Как при окончании выполнения Любой функции, выполнить SLOT?
connect(this->webView, SIGNAL(loadFinished(bool)), this, SLOT(wImage())); Как при окончании...

Если запись в столбце существует, то ничего не делать, если запись отсутствует, то записать нужное значение. Как реализовать?
Если запись в столбце существует, то ничего не делать, если запись отсутствует, то записать нужное...

Функция ЕСЛИ и значение #Н/Д как значение
Здравствуйте. Есть три функции ВПР необходимо отфильтровать значения через функцию ЕСЛИ. т.е. если...

Как выбросить ошибку 404?
Нужно чтобы при определенных условиях генерировалась 404я ошибка и далее отрабатывал встроенный...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru