[英]Rails - Rubocop - Begin + Rescue syntax
我有以下代碼:
def payload
begin
@payload ||= Warden::JWTAuth::TokenDecoder.new.call(token)
rescue JWT::ExpiredSignature => e
Rollbar.warning(e)
end
end
從簡短的閱讀幾個博客,我應該使用開始救援和結束處理錯誤,因為我正在上面做,但是我得到一個多余的'開始'rubocop警告。
是否僅在指定可能導致較大塊內的錯誤的代碼時使用? 因此它在這里是多余的嗎?
提前致謝
編輯:如果我不需要它,它是否寫成
def payload
@payload ||= Warden::JWTAuth::TokenDecoder.new.call(token)
rescue JWT::ExpiredSignature => e
Rollbar.warning(e)
end
?
當開始是你方法中的第一件事時,這樣做
def payload
@payload ||= Warden::JWTAuth::TokenDecoder.new.call(token)
rescue JWT::ExpiredSignature => e
Rollbar.warning(e)
end
方法體,塊體和lambda體是隱式異常塊。 您不需要在begin
/ rescue
/ else
/ ensure
/ end
異常塊中包裝方法體,塊體或lambda體的整個代碼 ,因為它已經是隱式的。 所以,每當你有類似的東西時
def foo
begin
rescue
end
end
要么
foo do
begin
rescue
end
end
要么
-> do
begin
rescue
end
end
你可以用它替換它
def foo
rescue
end
或塊和lambdas的等價物。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.