ファイルからいくつかの数値を読み取る小さなアプリケーションをいじっています。これまでのところすべてうまくいっていますが、問題が発生しました。効果的に修正する方法がわかりません。ユーザーが誤って間違ったファイル名を入力すると、FileNotFoundException が JVM によってスローされ、呼び出しメソッドでキャッチします。今、私は彼(ユーザー)に正しいファイル名を入力するためにもう一度2回試してもらいたいのですが、実際にキャッチブロックにいるときにファイルを開くメソッドを再度呼び出す方法がわかりません。以下に一時的な解決策を示しますが、これがこの問題を解決するための最も効果的/エレガントな方法であるかどうかはわかりません。
//code omitted
int temp = 0;
while(true) {
filename = input.next();
try {
ex.fileOpen(filename);
}
catch(FileNotFoundException e) {
if(temp++ == 3) {
System.err.println("You have entered the filename three times consecutively wrongly");
return;
}
continue;
}
break;
}
//do some other stuff
input は、ユーザー入力を読み取り、それを文字列変数のファイル名に割り当てるスキャナーです。fileOpen は、ファイル名を受け取り、ファイルを開き、コンテンツを読み取り、すべての数値をベクトルに書き込むメソッドです。
したがって、経験豊富な Java プログラマーからのすべてのサポートに本当に感謝しています。
こんにちはトム