到目前爲止我已經得到這個,即時嘗試在java中使用命令行。我想在輸入不是int時打印一個錯誤。如何輸入不是int時打印錯誤
private static void add(String[] args) {
if (args.length == 1) {
System.out.print("Error: Argument count mismatch");
}
int num = 0;
for (int i = 1;i < args.length;i++) {
if (isInteger(args[i]) == false) {
System.out.print("Error: Argument type mismatch");
}
int a = Integer.parseInt(args[i]);
num += a;
}
System.out.println(num);
}
第二if語句是我要打印錯誤的部分,如果輸入不是int,我有一個isInteger方法。但是,我的程序崩潰,或打印錯誤。
編輯:這是我的isInteger方法
public static boolean isInteger(String s) {
try {
Integer.parseInt(s);
} catch(NumberFormatException e) {
return false;
}
return true;
}
所以不應該是一個問題在這裏。
EDIT2:這裏是我得到
java.lang.NumberFormatException: For input string: "a"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at MyCLIParser.add(MyCLIParser.java:46)
at MyCLIParser.main(MyCLIParser.java:10)
你的isInteger()是什麼樣子?你在日誌中遇到的錯誤是什麼? – ChrisStillwell 2015-02-24 21:05:53
正如@ChrisS所說,提供你的錯誤的堆棧跟蹤,並且還試圖包含你的isInteger方法 – Tarik 2015-02-24 21:07:40
在那裏添加了我的isInteger方法。它只是崩潰,後面會提示錯誤代碼 – Schuld 2015-02-24 21:28:33