2

FileNotFoundExceptionスレッドをx秒間中断してファイルを再読み込みすることにより、Javaで処理しようとしています。この背後にある考え方は、実行時にプロパティを編集することです。

問題は、プログラムが単に終了することです。このソリューションを実現する方法はありますか?

4

4 に答える 4

3

Bjarne Stroustroup による C++ 用の古き良きレシピを Java に移植しました。

Result tryOpenFile(File f) {
  while (true) {
    try {
      // try to open the file
      return result; // or break
    } catch (FileNotFoundException e) {
      // try to recover, wait, whatever
    }
  }
}
于 2010-04-26T11:09:47.933 に答える
1

ファイルの読み込みをループで実行し、ファイルが正常に読み取られた後に、条件が依存する変数を設定します。ループ内で try-catch ブロックを使用し、catch ブロックで待機します。

于 2010-04-26T11:06:54.227 に答える
0

いくつかのコード スニペットは役に立ちますが、次のいずれかが問題になる可能性があります。

  • コードは最初の FileNotFoundException を正常にキャッチしますが、ウェイクアップした後、コードは 2 番目の例外を正常に処理しません
  • 処理されていない別の例外がスローされています。問題のコードを で一時的にラップして、catch (Exception e)スローされている例外を確認してください。
  • ファイルの編集に使用するプログラムがプロパティ ファイルを「ロック」しており、Java コードによるアクセスを妨げている可能性があります。

幸運を

于 2010-04-26T11:15:38.537 に答える
-2

例外がキャッチされない場合、スレッドは終了します。これがメイン スレッドの場合、アプリケーションは終了します。次のことを試してください。

try
{
   props.load(...);
}
catch (FileNotFoundException ex)
{
   Thread.sleep(x * 1000);
   props.load(...);
}
于 2010-04-26T11:07:59.170 に答える