我正在使用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
处理连接错误和响应代码是一种好方法吗? 或者我要过分谨慎?
答案 0 :(得分:1)
您肯定希望处理连接错误,因为它们是代码正常流程之外的异常,因此名称例外。当连接超时,连接无法访问等等时会发生这些异常,并且处理它们可确保您的代码能够抵御这些类型的故障。
就响应代码而言,我强烈建议您处理边缘情况或错误响应代码,以便您的代码在发现诸如未找到页面或不会触发异常的不良请求之类的情况下知晓。
在任何情况下,它实际上取决于您正在编写的代码,此时是一个意见问题,但在我看来和个人编码偏好中,处理异常和错误代码并不是过于谨慎而是防止未来的失败。