こんにちは私は簡単なJavaの練習に立ち往生しています。java main args []配列エラーの解析
申し訳ありませんが、これは本当にシンプルな場合は、私はJava初心者です。ユーザーは、このような「foo」というように「ヘルプ」以外の文字列を入力した場合、私は次のエラーを取得する:
Exception in thread "main" java.lang.NumberFormatException: For input string: "foo"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at NumberGuess.main(NumberGuess.java:10)
何が起こっていると思う:「FOO私はとのトラブルを抱えている何
args [0]はオブジェクト参照であり、実際には文字列ではないため、 "else"によって捕捉されていません。
私が知りたいこと:「ヘルプ」または数字「1」から「5」以外のものをすべてキャッチする方法は?あなたは正しくエラーを表していない文字列を解析しようとした場合parseInt
は例外を発生させ、気づいてきたようにここで
は、コード...
public class NumberGuess {
public static void main(String args[]){
int r;
int g;
if ((args[0].compareTo("help")) == 0){
System.out.println("Enter a number between 1-5 to play.");
} else if (Integer.parseInt(args[0]) > 0 && Integer.parseInt(args[0]) <= 5){
r = ((int)(Math.random()));
g = Integer.parseInt(args[0]);
if (r == g){
System.out.println("YOU WON!");
} else {
System.out.println("Wrong: number was " + r);
}
} else {
System.out.println("Something went horribly wrong.");
}}}
もっと複雑な引数解析については、私はcommons-cliを提案したいと思います。 – KitsuneYMG