AbstractPaginatedDataItemReader
を拡張したカスタムアイテムリーダーを作成しました。 Springバッチでは、どの例外がジョブを停止するかどうかを管理できます(例外はスキップされます)。 「古典的な」スプリングバッチリーダーでスプリングバッチページリーダーと例外処理
、doRead
方法は、任意のException
をスロー。つまり、読み込み中にスキップされた例外がスローされた場合、項目はスキップされ、ジョブは実行を継続します。
しかし、ページ分割の読者に、次のデータページを取得するために使用doPageRead
方法は、任意の例外をスローしません:
protected abstract Iterator<T> doPageRead();
doPageRead
方法はdoRead
1によって呼び出されます。
protected T doRead() throws Exception {
synchronized (lock) {
if(results == null || !results.hasNext()) {
results = doPageRead();
page ++;
if(results == null || !results.hasNext()) {
return null;
}
}
if(results.hasNext()) {
return results.next();
}
else {
return null;
}
}
}
doPageRead
メソッドはスローされた例外を宣言しません。つまり、スキップされた例外はRuntimeException
に限られますか?ページングリーダ -
おかげ