2014-01-26 7 views
0

Я пишу программу для прокатки костей, у которой есть два параметра, переданных на главную, сколько сторон имеет кости и сколько раз вы хотите их бросить. Я хотел исключить исключение, если прошло не более двух параметров. Как мне это сделать?Выбросить исключение, когда слишком много/несколько аргументов переданы на главный

Я нашел this. Но я не уверен, как его использовать? Неужели я должен каким-то образом указать количество аргументов, которые ожидаются до того, как это исключение может быть выбрано?

ответ

2

Попробуйте это:

public class Dice { 
    public static void main(String... args) { 

    // First, ensure there are 2 args 
    if (args.length != 2) { 
     throw new IllegalArgumentException("Exactly 2 parameters required !"); 
    } 

    int firstArgInt; 
    int secondArgInt; 

    // Verify all args are integers 
    try { 
     firstArg = Integer.parseIng(args[0]); 
    } catch (NumberFormatException nbfe) { 
     // 2 possible solutions : throw an exception, or assign a default value 
     // - throw new IllegalArgumentException("First arg must be an integer"); 
     // - firstArg = 42; 
    } 
    try { 
     secondArg = Integer.parseIng(args[1]); 
    } catch (NumberFormatException nbfe) { 
     // Same as above 
    } 

    // Etc. 

    } 
} 
+0

Спасибо, что бы я, однако, если я знаю, хотел проверить, если аргументы были числа? Я хотел бы бросить другое исключение, чтобы поймать и обработать, однако, если мой блок catch поймает IllegalArgumentException, он не будет знать, как с этим бороться, потому что это тот же тип исключения? –

+0

Я отредактировал свой ответ, чтобы добавить преобразование типа args. Если аргумент не является int, вы можете назначить ему значение по умолчанию вместо того, чтобы бросать исключение. –

+0

я попытался добавить еще одно исключение в том же пути к первому вы создали и начали бросать следующую ошибку: не удается найти символ бросить новый IncorrectInputException ^ Я включил мой код ниже попробовать \t \t \t { \t \t \t \t noOfFaces = Integer.parseInt (args [0]); \t \t \t \t \t если (noOfFaces <2) \t \t \t \t \t { \t \t \t \t \t \t певд IncorrectInputException(); \t \t \t \t \t} \t \t \t} \t \t \t улов (IncorrectInputException lessThan2) \t \t \t { \t \t \t \t System.out.println ("Вы должны пройти целое число, большее 2"); \t \t \t \t System.exit (1); \t \t \t} –

Смежные вопросы