ruby - 我的 Rubocop 不喜欢 Ruby 错误处理中的 => e。不是 => e 标准吗?
问题描述
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
是错误处理的标准,不是吗?我应该怎么办?
非常感谢您!=)
解决方案
您的示例没有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
推荐阅读
- c# - AutoMapperMappingException:缺少类型映射配置或不支持的映射。匿名类型到类
- opengl-es - Google ANGLE(几乎原生图形层引擎)翻译支持
- tensorflow - CNN 和 LSTM 用于 Keras 中的图像字幕
- flutter - 从 Flutter 应用程序中的服务器答案映射 json
- pandas - 如何在 Pandas 中处理重复的重复值?
- r - 优化(最小化)文件中的行数:符合排列和日程安排的优化问题
- django - 更新 Django ImageField 时未替换图像
- java - 在 Java 11 和 Gradle 中找不到 Lombok 模块
- php - Laravel试图获取非对象的属性“id”
- qt - 将元素放在子元素和父元素之间(z 值)QML