-1

別のソースからデータを取得する Java プログラムがあります。読んでいるときに時々例外が表示され、プログラムが終了しています。私のものは、10分ごとに実行されるプログラムにあります。

Public static void main(Strings[] args)
{
...readsource();
}

Private static void readsource() throws IOException
{
...
}

問題: 例外を取得/表示できます。しかし、私はプログラムを継続したいのですが、そのための最良のロジックは何ですか? try-catch-finally もアドレス指定されていないことがわかりません..例外が発生した後でもプログラムを続行したいです(つまり、次の反復を続行する必要があります)。これは、これに対処する方法がわからない基本的な問題のようです...

4

4 に答える 4

2

次に、現在行っていない例外をキャッチする必要があります。

try  {
    readsource();
} catch (IOException e) {
   // do something, never catch an exception and not do anything
}

//continue.

例外は通常、何かが間違っていることを示していることに注意してください。例外について何かをするつもりでない限り、例外の原因となっている状態を修正する方が良いかもしれません....

于 2012-08-20T21:09:02.710 に答える
1

catch ブロックで例外を再スローしない場合、実行は catch ブロックの最後で失敗し、例外がなかったかのように続行されます。

于 2012-08-20T21:16:14.847 に答える
1

メソッドでエラー ハンドラを提供する必要があります。つまり、readsource() の呼び出しを try-catch ブロックで囲みます。

   public static void main(Strings[] args)
   {
      try{
         ...readsource();
      }
      catch(IOException ioe){
           //handle the error here,e.g don't do anything or simply log it
      }
    }
于 2012-08-20T21:11:32.357 に答える
1

例外がスローされたか、これをwhileループに配置するだけでなく、メソッドをリコールしたい場合は、次のようにします。

Public static void main(Strings[] args)
{
    boolean run=true;
    while(run) {
    try {
            System.out.print("Hello,");
            readsource();
            throw new IOException();
            if(1==2)run=false;//stop the loop for whatever condition
        } catch(IOException ioe) {
            ioe.printStackTrace();
        }
        System.out.println(" world!");
    }
   }

}

Private static void readsource() throws IOException
{
...
}
于 2012-08-20T21:21:52.710 に答える