【发布时间】:2019-06-06 04:59:15
【问题描述】:
我有以下代码:
def payload
begin
@payload ||= Warden::JWTAuth::TokenDecoder.new.call(token)
rescue JWT::ExpiredSignature => e
Rollbar.warning(e)
end
end
通过简要阅读一些博客,我应该使用 begin rescue 和 end 来处理我上面所做的错误,但是我收到了一个多余的“开始”rubocop 警告。
是否仅在指定可能导致较大块内错误的代码位时才使用 begin?因此这里是多余的吗?
提前致谢
编辑:如果我不需要它,是否写成
def payload
@payload ||= Warden::JWTAuth::TokenDecoder.new.call(token)
rescue JWT::ExpiredSignature => e
Rollbar.warning(e)
end
?
【问题讨论】:
-
begin ... end也可以用于非rescue的原因——其中最值得注意的可能是begin ... end while test。 (或until),它保证在检查test之前通过循环。
标签: ruby-on-rails ruby rubocop