Ich verwende RestClient
, um einen Netzwerkanruf in der Ruby-Klasse zu tätigen. Ich bekomme immer eine , wenn ich nicht mit dem Internet verbunden bin. Ich habe einen Rettungsblock hinzugefügt, um die Ausnahme zu erfassen, aber ich bin dazu nicht in der Lage.Wie Socket-Fehler in Ruby mit RestClient zu retten?
die Fehlermeldung: SocketError (Failed to open TCP connection to api.something.com:443 (getaddrinfo: Name or service not known))
module MyProject
class Client
def get_object(url, params={})
response = RestClient.get(url, {params: params})
rescue SocketError => e
puts "In Socket errror"
rescue => e
puts (e.class.inspect)
end
end
end
Die breite Rettung wird aufgerufen und Druck SocketError
, aber warum die vorherigen rescue SocketError
nicht ausgelöst!
Siehst du etwas, das ich vermisse?
Ich denke Rest Kunde uns auch die Ausnahme und vorbei ist der Umgang, original Ausnahme war SocketError –
Werfen Sie einen Blick auf diese https://github.com/rest-client/rest-client/blob/master/lib/restclient/exceptions.rb#L103 –
@WishZone In ihren Dokumenten sagen sie, dass sie nicht tun mit wenigen Fehlern umgehen, einschließlich "SocketError", haben sie dennoch eine Möglichkeit, sie zu fangen? Ich füge auch das Backtrace oben hinzu. – aks