java.lang.ArithmeticException: делить на ноль в displaytag - PullRequest
1 голос
/ 26 января 2012

Я использую тег отображения в порталах (Struts Portal Framework), развернутых на портале websphere, используя внешнюю подкачку страниц с использованием подкачки списка значений (внедряем PaginatedList), в следующих строках показано java.lang.ArithmeticException: divide by zero :

     int pageCount = behavioursPaginatedList.getFullListSize() /  Math.max(1,behavioursPaginatedList.getObjectsPerPage());
        if ((behavioursPaginatedList.getFullListSize() % behavioursPaginatedList.getObjectsPerPage()) > 0)
    {
        pageCount++;
    }


FullListSize = 13
ObjectPerPage = 4


1 Ответ

3 голосов
/ 26 января 2012

Есть два места, где деление на ноль может произойти:

int pageCount = behavioursPaginatedList.getFullListSize() / 
    Math.max(1,behavioursPaginatedList.getObjectsPerPage());

В этом случае Math.max(1, ...) гарантированно предоставит ненулевое значение. Таким образом, исключение не может быть отсюда

if ((behavioursPaginatedList.getFullListSize() % 
        behavioursPaginatedList.getObjectsPerPage()) > 0)

В этом случае, если behavioursPaginatedList.getObjectsPerPage() вернет ноль, вы получите ошибку деления на ноль.


Тот факт, что вы получаете исключение, говорит о том, что деление на ноль происходит , а behavioursPaginatedList.getObjectsPerPage() равно , возвращая ноль. Вам нужно выяснить, почему это происходит.

...