我正在使用RestClient
在ruby類中進行網絡調用。無論何時我沒有連接到互聯網,我都會收到SocketError
。我已經添加了一個救援塊來捕捉異常,但我仍然無法這樣做。如何用RestClient解救Ruby中的套接字錯誤?
的錯誤信息是: 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
的廣泛救援被調用和打印SocketError
,但爲什麼以前rescue SocketError
不會被觸發!
你看到我丟失的東西嗎?
我認爲REST客戶端也處理異常,並傳遞給我們,原來異常是SocketError –
看看這個https://github.com/rest-client/rest-client/blob/master/lib/restclient/exceptions.rb#L103 –
@WishZone在他們的文檔中,他們說他們沒有處理一些錯誤,包括'SocketError',如果他們正在做,我們有辦法抓住他們嗎? 我也在上面添加了回溯。 – aks