Как решить Array Index OutOfBoundsException - PullRequest
0 голосов
/ 22 декабря 2018

У меня есть код ниже.Когда я выполняю это, я получаю ошибку ниже.Я запускаю тот же код на другом шаге, он работает нормально, но на текущем шаге он не работает.

java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: 17

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

def dbData = queryResults;


def mailTable = "<table style='border: 1px solid #ccc;border-collapse: collapse;'>";
def size = 17;

mailTable += "<tr style='border-top: 3px solid #ccc;'><b><u><td style='padding: 10px;bgcolor=#4169E1;'>SKU</td><td style='padding: 10px;bgcolor=#4169E1;'>Currency</td><td style='padding:10px;bgcolor=#4169E1;'>Source</td><td style='padding: 10px;bgcolor=#4169E1;'>Pricing Sort</td><td style='padding: 10px;bgcolor=#4169E1;'>Role</td><td style='padding: 10px;bgcolor=#4169E1;'>Product Manager</td><td style='padding: 10px;bgcolor=#4169E1;'>Price</td><td style='padding: 10px;bgcolor=#4169E1;'>Layout</td><td style='padding: 10px;bgcolor=#4169E1;'>Description</td><td style='padding: 10px;bgcolor=#4169E1;'>Reference</td><td style='padding: 10px;bgcolor=#4169E1;'>Global</td><td style='padding: 10px;bgcolor=#4169E1;'>Status</td><td style='padding: 10px;bgcolor=#4169E1;'>Material</td><td style='padding: 10px;bgcolor=#4169E1;'>Business</td><td style='padding: 10px;bgcolor=#4169E1;'>SB</td><td style='padding: 10px;bgcolor=#4169E1;'>Group</td><td style='padding: 10px;bgcolor=#4169E1;'>GPH Code</td></u></b></tr>"


/**
 * filling the html table with opportunity info
 * */
def index;
dbData.each {row ->

    mailTable += "<tr style='border-top: 3px solid #ccc;'>";

    for (index = 0; index < size; ++index) {
        mailTable += "<td style='padding: 10px;'>" + row.getAt(index) + "</td>";
    }

    mailTable += "</tr>";

}
mailTable += "</table>";

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Честно говоря, я понятия не имею о Def.Это какой-то метод lisp? Так может быть, что java не понимает значения индекса, поскольку это не обычная переменная int index java.Я могу ошибаться, я не знаю о методе определения.Извините, если я полностью неправ.

Приветствия

0 голосов
/ 22 декабря 2018

Вы получаете Array Index OutOfBoundsException, потому что вы пытаетесь получить доступ к элементу в пустом массиве (0 элементов), скорее всего.Я бы посоветовал вам проверить, пуст ли массив, прежде чем пытаться получить из него элементы.Я не совсем уверен, какой массив выдает ошибку в вашем коде, поскольку я не могу сказать, что делает вызов базы данных.Но я предполагаю, что это либо dbData, либо mailTable.

Попробуйте что-то вроде этого:

if (dbData.length != 0) {
  //run your code here that access the elements
} else { //do nothing..or whatever you want to happen when it's empty, maybe 
error? }
...