【发布时间】:2018-04-18 15:58:21
【问题描述】:
我正在创建一个程序,它可以打开然后读取用户指定的文件,目前我的代码如下所示:
System.out.println("Enter the name of the file you want to open: ");
FileN = scan.nextLine();
// I want the program to return to this point here if an error has occured.
try
{
scan = new Scanner(new File (FileN));
}
catch(Exception e)
{
System.out.println("Could not find file" + e);
System.out.println("Please enter a valid file name: ");
}
我已经在上面指定了我希望程序在代码中返回的位置,我目前尝试创建一个循环,然后使用 continue 但是它不会让我在循环中尝试。此外,我尝试创建一个新的 void,但它仍然无法正常工作。目前,即使用户输入了无效的文件名,程序也会继续运行。
我已经搜索过答案,只能找到与我想要的相关的答案:Java - Exception handling - How to re-enter invalid input
还通过循环尝试来阐明我的意思;对的,这是可能的。但是我想知道是否要继续在我的程序中工作,我是将 try 放在循环中还是将循环放在 try 中?我参考过:Should try...catch go inside or outside a loop?
【问题讨论】:
-
“它不会让我在循环中尝试”——请解释一下
-
请勿以 cmets 的形式发布说明。 Edit 你的问题。
-
如果你想捕获一个异常然后回到循环的开始,
try/catch肯定需要inside你的循环。 -
@khelwood 你认为哪个循环最适合我想要创建的程序,效率方面。
-
while循环适用于此。 “效率明智”是无关紧要的。在担心效率之前先做一些工作。
标签: java exception java.util.scanner