如何处理httparty错误rails

时间:2016-10-09 13:51:47

标签: ruby-on-rails

我正在使用httparty gem的api 我读过这个问题: How can I handle errors with HTTParty?

有两个最受欢迎的答案如何处理错误 第一个使用响应代码(不解决连接失败)

 response = HTTParty.get('http://twitter.com/statuses/public_timeline.json')

    case response.code
    when 200
      puts "All good!"
    when 404
      puts "O noes not found!"
    when 500...600
      puts "ZOMG ERROR #{response.code}"
    end

第二次发现错误。

 begin
   HTTParty.get('http://google.com')
 rescue HTTParty::Error
   # don´t do anything / whatever
 rescue StandardError
   # rescue instances of StandardError,
   # i.e. Timeout::Error, SocketError etc
 end

那么处理错误的最佳做法是什么? 我需要处理连接失败吗? 现在我正在考虑将这两种方法结合起来:

 begin
    response = HTTParty.get(url)

    case response.code
    when 200
      # do something
    when 404
      # show error
    end

    rescue HTTParty::Error => error
      puts error.inspect
    rescue => error
      puts error.inspect
    end
 end

处理连接错误和响应代码是一种好方法吗? 或者我要过分谨慎?

1 个答案:

答案 0 :(得分:1)

您肯定希望处理连接错误,因为它们是代码正常流程之外的异常,因此名称例外。当连接超时,连接无法访问等等时会发生这些异常,并且处理它们可确保您的代码能够抵御这些类型的故障。

就响应代码而言,我强烈建议您处理边缘情况或错误响应代码,以便您的代码在发现诸如未找到页面或不会触发异常的不良请求之类的情况下知晓。

在任何情况下,它实际上取决于您正在编写的代码,此时是一个意见问题,但在我看来和个人编码偏好中,处理异常和错误代码并不是过于谨慎而是防止未来的失败。