Как лучше всего спасать исключения из Net :: HTTP?
Выброшенные исключения описаны в Ruby's socket.c
, например Errno :: ETIMEDOUT
, Errno :: ECONNRESET
и Errno :: ECONNREFUSED
. Базовым классом для всех них является SystemCallError
, но кажется странным писать код, подобный следующему, потому что SystemCallError
, кажется, далек от выполнения вызова HTTP
:
begin
response = Net::HTTP.get_response(uri)
response.code == "200"
rescue SystemCallError
false
end
Это только я? Есть ли лучший способ справиться с этим помимо исправления Net :: HTTP
для обработки исключений Errno
, которые, вероятно, будут всплывать и инкапсулировать их в родительском HttpRequestException
?