一旦在此代码中捕获到异常,就会运行menuSystem
方法,但是一旦我输入一个数字,程序就会关闭并显示“Build is successful”消息。一旦发生异常,有没有办法重新进入while循环?
public static void main(String[] args) {
final UnitResults myUnit = new UnitResults(10, "Java");
int option = menuSystem();
try {
while (option != 0) {
final Scanner keyb = new Scanner(System.in);
System.out.println("");
switch (option) {
}
}
} catch (Exception InputMismachException) {
System.out.println("\nPlease Enter a Valid Number\n");
option = menuSystem();
}
}
答案 0 :(得分:15)
将 try / catch 放入 while循环:
while (option != 0) {
final Scanner keyb = new Scanner(System.in);
System.out.println("");
try {
switch (option) {
}
} catch (Exception InputMismachException) {
System.out.println("\nPlease Enter a Valid Number\n");
option = menuSystem();
}
}
答案 1 :(得分:1)
将try
和catch
置于while
循环中。如果代码使用nextInt()
,那么您需要跳过无效输入,因为如果不匹配,它将不会被使用。
在尝试使用有效输入之前,可以使用InputMismatchException
的{{1}}方法避免hasNextInt()
的异常处理:
Scanner
答案 2 :(得分:0)
另一种方法可以做到:
List<File> directories;
...
for ( File f : directories ) {
try {
processFolder(f);
} catch( Exception e ) {
SimpleLog.write(e);
}
}