试图在Rails 5中挽救HTTParty连接错误

时间:2017-11-09 12:55:00

标签: ruby-on-rails ruby-on-rails-5 httparty

我正在使用Rails 5和HTTParty。

问题是,如果由于某种原因API崩溃,我的应用程序崩溃了。我想处理这个案例并找到了几个解决方案,但没有让它们发挥作用。

我做的是:

begin
   api = HTTParty.get(URL)
rescue HTTParty::Error
   puts('API not available')
end

我希望如果API关闭或者我使用了无效的网址,它就不会给我一个内部服务器错误,但告诉我API不可用并继续使用代码。

但它给出了内部服务器错误:

SocketError (Failed to open TCP connection to URL (getaddrinfo: nodename nor servname provided, or not known)):

如何确保不会发生这种情况?

2 个答案:

答案 0 :(得分:2)

看起来你只是拯救了你真正得到的同样的错误。

begin
   api = HTTParty.get(URL)
rescue HTTParty::Error, SocketError => e
   puts('API not available')
end

请注意,此次救援后执行的所有代码都应考虑到您的回复可能为空白

答案 1 :(得分:0)

我也遇到了同样的问题,但是从HTTParty :: Error救援没有任何作用。我的实际错误始终是Errno::ECONNREFUSED,因此以下是为我解决的错误:

begin
  api = HTTParty.get(URL)
rescue Errno::ECONNREFUSED
  puts('API not available')
end