我正在使用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)):
如何确保不会发生这种情况?
答案 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