Moja aplikacja (Ruby 1.9.2) może powodować różne wyjątki, w tym przerwy w połączeniach sieciowych. I rescue Exception => e
, następnie wykonaj case/when
, aby obsłużyć je na różne sposoby, ale kilka błędów przechodzi przez moje przypadki prosto do else
.Jak złapać Errno :: ECONNRESET klasy w "case when"?
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
Wydruki:
Errno::ECONNRESET
3
Ratuj swoje klasy błędów w bloku ratunkowym, a następnie całkowicie unikaj instrukcji case. –