0

これは奇妙な質問かもしれませんが、特定のメソッドからの特定の種類の例外がデバッグ コンソールに出力されないようにする必要があります。

私が話しているこの例外は、セッター メソッドが算術例外をスローしている 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>
4

0 に答える 0