这是我的方法:
def get_video_duration
@time ||= Panda.get("/videos/#{@video.panda_id}/metadata.json")["duration"]
format_duration
end
我需要在使用begin
,rescue
块包装它时“更好”地编写此方法,以便@time
可以为nil,具体取决于API的响应。
答案 0 :(得分:2)
是的,可以使用内联 rescue
子句。
def get_video_duration
@time ||= Panda.get("/videos/#{@video.panda_id}/metadata.json")["duration"] rescue nil
format_duration
end
或者更明确地做到这一点。
def get_video_duration
@time ||= Panda.get("/videos/#{@video.panda_id}/metadata.json")["duration"]
rescue YourException
@time = nil
format_duration
end
答案 1 :(得分:1)
可能会使用其他方法将其分解:
def fetch_video_duration
Panda.get("/videos/#{@video.panda_id}/metadata.json")["duration"]
rescue
return nil
end
def get_video_duration
@time ||= fetch_video_duration
format_duration
end