我正在循环使用一组用户,作为其中的一部分,我正在调用第三方API(通过Intercom API Ruby wrapper)。
如果内部通信API无法找到用户,则会引发Intercom::ResourceNotFound
,并且会停止整个过程。
我只是想让它跳过用户,如果它找不到它。
User.each do |user|
user = Intercom::User.find_by_email(user.email) # Intercom::ResourceNotFound thrown if not found
user.custom_data["Example"] = true
user.save
end
这是Intercom Ruby包装器的问题吗?或者是否有一种典型的Ruby或Rails方式来处理这类事情?
答案 0 :(得分:3)
如何捕捉异常?
User.each do |user|
begin
user = Intercom::User.find_by_email(user.email) # Intercom::ResourceNotFound thrown if not found
user.custom_data["Example"] = true
user.save
rescue Intercom::ResourceNotFound
end
end
由于您只是想跳过用户(如果找不到)(并且抛出异常),rescue
之后就没有错误处理代码。但是如果你想要调试一些调试信息,你可以写一下:
rescue Intercom::Resource
puts %{Could not work on user...}
end