Module: Qpid::Proton::ExceptionHandling
- Included in:
- Messenger
- Defined in:
- lib/qpid_proton/exception_handling.rb
Overview
Provides mixin functionality for dealing with exception conditions.
Instance Method Summary collapse
-
#check_for_error(code) ⇒ Object
Raises an Proton-specific error if a return code is non-zero.
Instance Method Details
#check_for_error(code) ⇒ Object
Raises an Proton-specific error if a return code is non-zero.
Expects the class to provide an error
method.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/qpid_proton/exception_handling.rb', line 31 def check_for_error(code) raise ::ArgumentError.new("Invalid error code: #{code}") if code.nil? return code if code > 0 case(code) when Qpid::Proton::Error::NONE return when Qpid::Proton::Error::EOS raise Qpid::Proton::EOSError.new(self.error) when Qpid::Proton::Error::ERROR raise Qpid::Proton::ProtonError.new(self.error) when Qpid::Proton::Error::OVERFLOW raise Qpid::Proton::OverflowError.new(self.error) when Qpid::Proton::Error::UNDERFLOW raise Qpid::Proton::UnderflowError.new(self.error) when Qpid::Proton::Error::ARGUMENT raise Qpid::Proton::ArgumentError.new(self.error) when Qpid::Proton::Error::TIMEOUT raise Qpid::Proton::TimeoutError.new(self.error) when Qpid::Proton::Error::INPROGRESS return when Qpid::Proton::Error::INTERRUPTED raise Qpid::Proton::InterruptedError.new(self.error) when Qpid::Proton::Error::INPROGRESS raise Qpid::Proton::InProgressError.new(self.error) else raise ::ArgumentError.new("Unknown error code: #{code}") end end |