У меня есть класс Player и в нем есть метод shotWithWeapon, нужно выбросить исключение IllegalArgumentException, если значение slot некорректно. И чтоб в методе main при вводе не правильного значения с клавиатуры выводило соответствующее исключение.
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
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();
}
}