我一般对Java和编程都不熟悉,我正在开发一个程序,该程序应该从用户那里获取输入,并基于该创建/删除类实例。
这是代码:
while(true) {
int is = -1; //0 is the number of first istance
try(Scanner s = new Scanner(System.in);){
System.out.print("Enter the desired action: ");
String input = s.next();
if(input.equals("j")){
(new Thread(new Parser())).start();
}
is = Integer.parseInt(input);
if (is >= 0 && is <= (Parser.count - 1)) {
Parser.kill(is);
}else {
System.out.println("wrong key");
break;
}
}catch(NumberFormatException e){
System.out.println("exception");//
}
}
主要问题是,如果输入不是“ j”,它将抛出“ NoSuchElementException”,我试图捕获该异常,但是在这种情况下,程序进入循环并停止等待用户输入。这是堆栈跟踪:
java.lang.NumberFormatException: For input string: "m"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Task.run(Task.java:17)
at java.lang.Thread.run(Unknown Source)
您能指出我做错了什么吗?是否有任何库可以帮助我制作类似cmd的程序?