Demigodd
@Demigodd

Как правильно сортировать массив без ошибок?

Есть такой код. В котором сортирую массив по имени обьектов.

array.sort_by do |item|
    if item.expression
      [item.title, item.description]
    else
      [item.first_name, item.last_name]
    end
  end


Но вот беда если к примеру вместо first_name или last_name будет nil, false.
То ошибки. The error was: comparison of Array with Array failed. не миновать.

Как в моем случае правильно и понятно обработать ошибку ?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
longclaps
@longclaps
Никак. Ошибка прервёт твою сортировку на самом интересном месте. Поэтому ошибку надо не обработать, а предотвратить. Сперва надо принять ответственное решение: куда должны попасть безымянные элементы - вверх или вниз? А затем придумать для них дефолтные значения ключей и переписать блок кода внутри sort_by так, чтобы они при необходимости подставлялись.
Еще раз, для закрепления: если выбрасывается ошибка - сортировка прерывается (ведь у тебя нет своего собственного обработчика ошибки внутри алгоритма сортировки, т.к. не ты его писал). Поэтому правильно и понятно обработать ошибку никак.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы