これは奇妙な質問かもしれませんが、特定のメソッドからの特定の種類の例外がデバッグ コンソールに出力されないようにする必要があります。
私が話しているこの例外は、セッター メソッドが算術例外をスローしている Primefaces の LazyDataModel で発生しています。
LazyDataModel.class の Primefaces フレームワークの親クラス メソッドは次のとおりです。
public void setRowIndex(int rowIndex) {
this.rowIndex = rowIndex % this.pageSize;
}
そこにある一般的な解決策は次のとおりです。
@Override
public void setRowIndex(int rowIndex) {
if (rowIndex == -1 || getPageSize() == 0) {
super.setRowIndex(-1);
}
else {
super.setRowIndex(rowIndex % getPageSize());
}
}
ただし、上記の解決策は依然として Arthimetic Exception: / by zero を pageSize が 0 の場合にスローします。例外をキャッチしてメソッド内の値を操作しようとしたため、例外はスローされませんが、UI が壊れます。
オーバーライド メソッドがない場合、すべて正常に動作しますが、例外は引き続き出力されます。私たちの経営陣はこれを望んでいません。
私が今考えている解決策は、オーバーライド メソッドを削除し、JVM またはメソッド自体から例外を抑制しようとすることです。そして、経営陣はそれを喜んで受け入れているようです。それらの行で、私が試すことができるアプローチはありますか?
更新 1: PSo から要求されたように、pageSize を明示的に設定していません (バックエンドまたはフロントエンド)。
ビューファイルのデータテーブル定義
<p:dataTable widgetVar="myWidgetName" var="myDataVariable" value="#{myManagedBean.dataList}" rowIndexVar="myRowIndexVariable" id="myDataTableId"
styleClass="myStyleClass" emptyMessage="No Records Found"
rowStyleClass="myRowStyleClass"
scrollable="false"
paginator="true"
rows="5"
paginatorAlwaysVisible="true"
paginatorPosition="both"
paginatorTemplate="{FirstPageLink} {PreviousPageLink} {JumpToPageDropdown} {PageLinks} {NextPageLink} {LastPageLink}"
rowsPerPageTemplate="10"
selection="#{myManagedBean.mySelectedRecord}"
rendered="true">
<p:column headerText="#">
<h:outputText>#{myDataRowIndex}</h:outputText></p:column>
<p:column styleClass="myColumnStyleClass">
</p:column>
</p:dataTable>