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

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.

Raises:

  • (::ArgumentError)


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