さて、まず第一に、
例外には 2 種類あります。チェックあり&チェックなし。
非チェック例外は、プログラムが回復できない例外です。NullPointers のように、ロジックに何か問題があることを伝えます。
チェックされた例外は実行時例外であり、これらの例外から回復できます。
したがって、「Exception」基本クラスを探す catch ステートメントの使用は避ける必要があります。これは両方の時間を表しています。おそらく、特定の例外 (通常はランタイム例外のサブクラス) を探すことを検討する必要があります。
要するに、それだけではありません。
また、例外処理をワークフローとして使用しないでください。通常、アーキテクチャに何らかの欠陥があることを示しています。名前が示すように、それらは通常の実行に対する「例外」として扱われるべきです。
今、あなたのコードを考えると:
for(DataSource source : dataSources) {
try {
//do something with 'source'
} catch (Exception e) { // catch any exception
continue; // will just skip this iteration and jump to the next
}
//other stuff ?
}
そのまま、例外をキャッチして先に進む必要があります。多分あなたが私たちに言っていないことがありますか?:P
とにかく、これが役立つことを願っています。