0
我正在寫一個擲骰子程序,它有兩個參數傳遞給main,骰子有多少個邊以及你想拋出的次數。如果傳遞少於或多於兩個參數,我想拋出異常。我會如何去做這件事?我找到this。 但我不確定如何使用它?當然,我必須以某種方式指定在可以引發異常之前預期的參數數量?當太多/少數參數傳遞給main時拋出一個異常
我正在寫一個擲骰子程序,它有兩個參數傳遞給main,骰子有多少個邊以及你想拋出的次數。如果傳遞少於或多於兩個參數,我想拋出異常。我會如何去做這件事?我找到this。 但我不確定如何使用它?當然,我必須以某種方式指定在可以引發異常之前預期的參數數量?當太多/少數參數傳遞給main時拋出一個異常
試試這個:
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.
}
}
謝謝你,我會怎麼做但是如果我知道要檢查論點號碼?我想拋出一個不同的異常來捕獲和處理,但是如果我的catch塊捕獲IllegalArgumentException,它將不知道如何處理,因爲它的異常類型相同? –
我編輯了我的答案以添加參數類型轉換。如果參數不是int,則可能需要爲其分配默認值而不是拋出異常。 –
我嘗試添加其他異常以同樣的方式爲您創建的第一個,它開始拋出了以下錯誤:無法找到符號 拋出新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} –