如何停止打印java中某个方法的某类异常?

wdebmtf2  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(205)

这可能是一个奇怪的问题,但是我们需要从某个方法中抑制某种类型的异常,以便打印到调试控制台。
我所说的这个异常发生在primefaces的lazydatamodel上,其中setter方法抛出算术异常:/by 0,当在datatable生命周期的某个阶段pagesize为0时,它继续抛出该异常。
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());
    }
  }

但是,当pagesize为0时,上面发布的解决方案仍然能够将arthematic exception:/抛出0。我们已经尝试捕捉异常并在方法中操作值,这样就不会抛出异常,但会破坏ui。
当我们没有override方法时,一切正常,但是异常仍然被打印出来。我们的管理层不希望这样。
我现在考虑的解决方案是删除我的override方法,并尝试从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>

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题