2017-11-09 1 views
0

zu retten Ich verwende Rails 5 und HTTParty.Versuchen, HTTParty Verbindungsfehler in Rails 5

Problem ist, dass wenn die API aus irgendeinem Grund abstürzt meine App abstürzt. Ich möchte diesen Fall behandeln und habe mehrere Lösungen gefunden, die aber nicht funktionieren.

Was ich getan habe ist:

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

Was hoffte ich, dass, wenn die API nach unten ist, oder wenn ich eine ungültige URL verwenden, wäre es nicht einen internen Serverfehler geben Sie mir aber mir sagen, die die API nicht verfügbar und mit dem Code fortfahren.

Aber stattdessen gibt es und interne Serverfehler:

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

Wie kann ich sicherstellen, dass dies nicht geschieht?

Antwort

2

Es sieht aus, dass Sie gerade nicht den gleichen Fehler retten, den Sie wirklich erhalten.

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

Beachten Sie, dass alle Ihre Code, das ausgeführt wird, nachdem diese Rettung zu berücksichtigen, dass Ihre Antwort leer sein nehmen sollte