Мой Rubocop не любит => e в обработке ошибок Ruby.Разве это не стандарт? - PullRequest
0 голосов
/ 08 июня 2018

Рубокопу не нравится, как я справляюсь с ошибкой.Что мне делать?

Lint/UselessAssignment: Useless assignment to variable - e.
    rescue *exceptions_list => e

Это для фрагмента кода ниже:

  def get_request(url_args = {})
    http_connection(url_builder(url_args[:url], url_args[:page]))
  rescue *exceptions_list => e
    raise "#{e.message}"
  end

*exceptions_list, который вы видите там, определен в частном методе:

  private

    def exceptions_list
      [
        Net::HTTPBadResponse,
        Net::HTTPHeaderSyntaxError,
        Net::ProtocolError,
        Errno::ECONNRESET,
        Errno::EINVAL,
        Timeout::Error,
        EOFError,
        SocketError
      ]
    end

Чтобы спасательная линия не была слишком длинной.

Вопрос: => e довольно стандартно для обработки ошибок, нет?Что мне делать?

Заранее большое спасибо!=) * * 1016

1 Ответ

0 голосов
/ 08 июня 2018

Ваш пример не дает Lint/UselessAssignment от rubocop, по крайней мере, с версией 0.55.0

. UselessAssignment обычно приходит примерно так:

def do_things
  ..
rescue *exception_list => e # Useless assignment, e is never used in the block below.
  puts "it failed :("
end

Чтобы это исправить,Вы можете удалить назначение, если не используете возбужденное исключение для чего-либо:

def do_things
  ..
rescue *exception_list
  puts "it failed and i don't care why :D"
end
...