module Qpid::Proton::ExceptionHandling

Provides mixin functionality for dealing with exception conditions.

Public Instance Methods

check_for_error(code) click to toggle source

Raises an Proton-specific error if a return code is non-zero.

Expects the class to provide an error method.

# File lib/qpid_proton/exception_handling.rb, line 31
def check_for_error(code)
  raise ::ArgumentError.new("Invalid error code: #{code}") if code.nil?

  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

  else

    raise ::ArgumentError.new("Unknown error code: #{code}")

  end

end