我的 Rubocop 不喜欢 => e in Ruby 错误处理。 => e 不是标准的吗?
My Rubocop doesn't like => e in Ruby error handling. Isn't => e standard?
Rubocop 似乎不喜欢我处理错误的方式。我该怎么办?
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
是错误处理的标准,不是吗?我该怎么办?
非常感谢您! =)
你的例子没有给出来自 rubocop 的 Lint/UselessAssignment
,至少在版本 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
Rubocop 似乎不喜欢我处理错误的方式。我该怎么办?
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
是错误处理的标准,不是吗?我该怎么办?
非常感谢您! =)
你的例子没有给出来自 rubocop 的 Lint/UselessAssignment
,至少在版本 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