2012-08-09 197 views
1

我正在循環使用一組用戶,並且作爲其中的一部分,我正在調用第三方API(通過Intercom API Ruby wrapper)。繼續通過ResourceNotFound循環?

如果Intercom 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方式來處理這種事情?

回答

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