¿Cómo atrapar Errno :: clase ECONNRESET en "caso cuando"?

Mi aplicación (Ruby 1.9.2) puede generar diferentes excepciones, incluidas interrupciones de conexión de red. yorescue Exception => e, entonces hazlocase/when para manejarlos de maneras diferentes, pero varios errores pasan por mis casos directamente aelse.

rescue Exception => e
    p e.class
    case e.class
        when Errno::ECONNRESET
            p 1
        when Errno::ECONNRESET,Errno::ECONNABORTED,Errno::ETIMEDOUT
            p 2
        else
            p 3
    end
end

Huellas dactilares:

Errno::ECONNRESET
3

Respuestas a la pregunta(1)

Su respuesta a la pregunta