Как лучше всего обрабатывать исключения из Net :: HTTP?

Как лучше всего спасать исключения из 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 ?

47
задан Edward Ocampo-Gooding 20 March 2011 в 19:01
поделиться