मैं रूबी क्लास में नेटवर्क कॉल करने के लिए RestClient
का उपयोग कर रहा हूं। जब भी मैं इंटरनेट से कनेक्ट नहीं हूं, मुझे SocketError
मिल रहा है। मैंने अपवाद को पकड़ने के लिए एक बचाव ब्लॉक जोड़ा है, फिर भी मैं ऐसा करने में सक्षम नहीं हूं।रूबी में सॉकेट त्रुटि को RestClient के साथ कैसे बचाएं?
त्रुटि संदेश है: 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
ट्रिगर नहीं कर रहा है!
क्या आप ऐसा कुछ देखते हैं जो मुझे याद नहीं है?
मुझे लगता है कि बाकी ग्राहक भी अपवाद हैंडलिंग और हमारे लिए गुजर रहा है, मूल अपवाद सॉकेटइर –
इस https://github.com/rest-client/rest-client/blob/master/lib/restclient/exceptions.rb#L103 –
@WishZone पर उनके दस्तावेज़ों पर एक नज़र डालें, वे कहते हैं कि वे नहीं करते हैं 'सॉकेट इरर' सहित कुछ त्रुटियों को संभालें, फिर भी यदि वे कर रहे हैं, तो क्या हमारे पास उन्हें पकड़ने का कोई तरीका है? मैं ऊपर बैकट्रैक भी जोड़ रहा हूं। – aks