Sha256: 0ae3142b296f357d124b0de5ffaae0f7df4bdca528083e3bb03b7db57a4b9df4

Contents?: true

Size: 1.93 KB

Versions: 1

Compression:

Stored size: 1.93 KB

Contents

# encoding: utf-8

module AMQP
  # Base class for AMQP connection lifecycle exceptions.
  # @api public
  class Error < StandardError
    # An exception in one of the underlying libraries that caused this
    # exception to be re-thrown. May be nil.
    attr_reader :cause
  end


  # All the exceptions below are new in 0.8.0. Previous versions
  # used AMQP::Error for everything. We have to carry this baggage but
  # there is a way out: simply subclass AMQP::Error and provide a backwards-compatible
  # way of attaching root cause exception (like AMQ::Client::TCPConnectionFailed) instance
  # to it.
  #
  # In other words: AMQP::Error is here to stay for a long time. MK.



  # Raised when initial TCP connection to the broker fails.
  # @api public
  class TCPConnectionFailed < Error

    #
    # API
    #

    # @return [Hash] connection settings that were used
    attr_reader :settings

    def initialize(settings, cause = nil)
      @settings = settings
      @cause    = cause

      super("Could not estabilish TCP connection to #{@settings[:host]}:#{@settings[:port]}")
    end # TCPConnectionFailed
  end


  # Raised when queue (or exchange) declaration fails because another queue with the same
  # name but different attributes already exists in the channel object cache.
  # @api public
  class IncompatibleOptionsError < Error
    def initialize(name, opts_1, opts_2)
      super("There is already an instance called #{name} with options #{opts_1.inspect}, you can't define the same instance with different options (#{opts_2.inspect})!")
    end
  end # IncompatibleOptionsError

  # Raised on attempt to use a channel that was previously closed
  # (either due to channel-level exception or intentionally via AMQP::Channel#close).
  # @api public
  class ChannelClosedError < Error
    def initialize(instance)
      super("Channel with id = #{instance.channel} is closed, you can't use it anymore!")
    end
  end # ChannelClosedError
end # AMQP

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
amqp-0.8.0.rc3 lib/amqp/exceptions.rb