Как отловить класс Errno :: ECONNRESET в «случае, когда»?

Мое приложение (Ruby 1.9.2) может вызывать различные исключения, включая разрывы сетевого соединения. яrescue Exception => eтогда делайcase/when обращаться с ними по-разному, но несколько ошибок проходят через мои дела прямо кelse.

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

Печать:

Errno::ECONNRESET
3

Ответы на вопрос(1)

Ваш ответ на вопрос