Пришлось все переписывать через if, не нашел лучшего способа. Когда через try-catch просто ловит исключение, если соседняя ячейка вне массива. Потому что после публикации на сайте игра не работает через try-catch.
private ArrayList<GameObject> getNeighbors(GameObject gameObject) {
        ArrayList<GameObject> neighbors = new ArrayList<GameObject>();

        //добавляем соседей в список, если сосед вне массива, то ловим исключние
        if (gameObject.x == 0 && gameObject.y == 0) {            //левый верхний угол
            neighbors.add(gameField[gameObject.y + 1][gameObject.x]);
            neighbors.add(gameField[gameObject.y + 1][gameObject.x + 1]);
            neighbors.add(gameField[gameObject.y][gameObject.x + 1]);
        }
        else if (gameObject.x == SIDE - 1 && gameObject.y == 0) {     //правый верхний угол
            neighbors.add(gameField[gameObject.y][gameObject.x - 1]);
            neighbors.add(gameField[gameObject.y + 1][gameObject.x - 1]);
            neighbors.add(gameField[gameObject.y + 1][gameObject.x]);
        }
        else if (gameObject.x == SIDE - 1 && gameObject.y == SIDE - 1) {    //правый нижний угол
            neighbors.add(gameField[gameObject.y - 1][gameObject.x]);
            neighbors.add(gameField[gameObject.y - 1][gameObject.x - 1]);
            neighbors.add(gameField[gameObject.y][gameObject.x - 1]);
        }
        else if (gameObject.x == 0 && gameObject.y == SIDE - 1) {         //нижний левый угол
            neighbors.add(gameField[gameObject.y - 1][gameObject.x]);
            neighbors.add(gameField[gameObject.y - 1][gameObject.x + 1]);
            neighbors.add(gameField[gameObject.y][gameObject.x + 1]);
        }
        else if (gameObject.x > 0 && gameObject.x < SIDE - 1 && gameObject.y == 0) {    //для крайней верхней ячейки
            neighbors.add(gameField[gameObject.y][gameObject.x - 1]);
            neighbors.add(gameField[gameObject.y + 1][gameObject.x - 1]);
            neighbors.add(gameField[gameObject.y + 1][gameObject.x]);
            neighbors.add(gameField[gameObject.y + 1][gameObject.x + 1]);
            neighbors.add(gameField[gameObject.y][gameObject.x + 1]);
        }
        else if (gameObject.x > 0 && gameObject.x < SIDE - 1 && gameObject.y == SIDE - 1) {     //для крайней нижней ячейки
            neighbors.add(gameField[gameObject.y][gameObject.x - 1]);
            neighbors.add(gameField[gameObject.y - 1][gameObject.x - 1]);
            neighbors.add(gameField[gameObject.y - 1][gameObject.x]);
            neighbors.add(gameField[gameObject.y - 1][gameObject.x + 1]);
            neighbors.add(gameField[gameObject.y][gameObject.x + 1]);
        }
        else if (gameObject.y > 0 && gameObject.y < SIDE - 1 && gameObject.x == 0) {        //для крайней левой ячейки
            neighbors.add(gameField[gameObject.y - 1][gameObject.x]);
            neighbors.add(gameField[gameObject.y - 1][gameObject.x + 1]);
            neighbors.add(gameField[gameObject.y][gameObject.x + 1]);
            neighbors.add(gameField[gameObject.y + 1][gameObject.x + 1]);
            neighbors.add(gameField[gameObject.y + 1][gameObject.x]);
        }
        else if (gameObject.y > 0 && gameObject.y < SIDE - 1 && gameObject.x == SIDE - 1) {     //для крайней правой ячейки
            neighbors.add(gameField[gameObject.y - 1][gameObject.x]);
            neighbors.add(gameField[gameObject.y - 1][gameObject.x - 1]);
            neighbors.add(gameField[gameObject.y][gameObject.x - 1]);
            neighbors.add(gameField[gameObject.y + 1][gameObject.x - 1]);
            neighbors.add(gameField[gameObject.y + 1][gameObject.x]);
        } else {
            neighbors.add(gameField[gameObject.y - 1][gameObject.x - 1]);
            neighbors.add(gameField[gameObject.y - 1][gameObject.x]);
            neighbors.add(gameField[gameObject.y - 1][gameObject.x + 1]);
            neighbors.add(gameField[gameObject.y][gameObject.x + 1]);
            neighbors.add(gameField[gameObject.y + 1][gameObject.x + 1]);
            neighbors.add(gameField[gameObject.y + 1][gameObject.x]);
            neighbors.add(gameField[gameObject.y + 1][gameObject.x - 1]);
            neighbors.add(gameField[gameObject.y][gameObject.x - 1]);
        }
        /*
        try {
            neighbors.add(gameField[gameObject.y - 1][gameObject.x - 1]);
        } catch (ArrayIndexOutOfBoundsException e) {
        }
        try {
            neighbors.add(gameField[gameObject.y - 1][gameObject.x]);
        } catch (ArrayIndexOutOfBoundsException e) {
        }
        try {
            neighbors.add(gameField[gameObject.y - 1][gameObject.x + 1]);
        } catch (ArrayIndexOutOfBoundsException e) {
        }
        try {
            neighbors.add(gameField[gameObject.y][gameObject.x + 1]);
        } catch (ArrayIndexOutOfBoundsException e) {
        }
        try {
            neighbors.add(gameField[gameObject.y + 1][gameObject.x + 1]);
        } catch (ArrayIndexOutOfBoundsException e) {
        }
        try {
            neighbors.add(gameField[gameObject.y + 1][gameObject.x]);
        } catch (ArrayIndexOutOfBoundsException e) {
        }
        try {
            neighbors.add(gameField[gameObject.y + 1][gameObject.x - 1]);
        } catch (ArrayIndexOutOfBoundsException e) {
        }
        try {
            neighbors.add(gameField[gameObject.y][gameObject.x - 1]);
        } catch (ArrayIndexOutOfBoundsException e) {
        }
        */

        return neighbors;
    }