Ruby Rails 애플리케이션에 대한 테스트를 작성하고 있으며 Ruby가 연결할 수없는 경우 Redis 서버가 던져 놓은 오류를 잡아 내야하는 코드 블록이 있습니다. 현재 코드는 다음과 같습니다Ruby rescue가 StandardError를 캐치하지 않습니다.
begin
config.before(:all) { Resque.redis.select 1 }
config.after(:all) { Resque.redis.keys("queue:*").each { |key| Resque.redis.del key } }
rescue Exception
puts "RESCUED REDIS ERROR"
end
내가 테스트를 실행하는 코드의 두 번째 줄 시도 스택 추적에 따르면 - config.before (모든) {...}를 - - 1 Redis :: CannotConnectError을 던집니다. "e.class.superclass.superclass ..."명령을 많이 수행 한 후에이 오류가 StandardError에서 상속 받았다고 결정했습니다.
그 후 나는 붙 잡혔다. "Rescue Redis :: CannotConnectError", "rescue"및 마침내 "Rescue Exception"오류를 잡으려고 시도했지만 여전히 오류가 발생합니다. 그러나 Ruby 명령 프롬프트에서 같은 것을 시도했는데 예외가 매회 잡혔습니다
아무도 나에게 무슨 일이 일어나는지 알아낼 수 있습니까? 감사!
나는 그것이 루비의 문제를 생각하지 않습니다를? RSpec을 사용합니다. 맞습니까? –