Exception: Rdkafka::RdkafkaError

Inherits:
BaseError
  • Object
show all
Defined in:
lib/rdkafka/error.rb

Overview

Error returned by the underlying rdkafka library.

Direct Known Subclasses

RdkafkaTopicPartitionListError

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#broker_messageString (readonly)

Error message sent by the broker

Returns:

  • (String)


19
20
21
# File 'lib/rdkafka/error.rb', line 19

def broker_message
  @broker_message
end

#message_prefixString (readonly)

Prefix to be used for human readable representation

Returns:

  • (String)


15
16
17
# File 'lib/rdkafka/error.rb', line 15

def message_prefix
  @message_prefix
end

#rdkafka_responseInteger (readonly)

The underlying raw error response

Returns:

  • (Integer)


11
12
13
# File 'lib/rdkafka/error.rb', line 11

def rdkafka_response
  @rdkafka_response
end

Instance Method Details

#==(another_error) ⇒ Object

Error comparison



58
59
60
# File 'lib/rdkafka/error.rb', line 58

def ==(another_error)
   another_error.is_a?(self.class) && (self.to_s == another_error.to_s)
end

#codeSymbol

This error's code, for example :partition_eof, :msg_size_too_large.

Returns:

  • (Symbol)


31
32
33
34
35
36
37
38
# File 'lib/rdkafka/error.rb', line 31

def code
  code = Rdkafka::Bindings.rd_kafka_err2name(@rdkafka_response).downcase
  if code[0] == "_"
    code[1..-1].to_sym
  else
    code.to_sym
  end
end

#is_partition_eof?Boolean

Whether this error indicates the partition is EOF.

Returns:

  • (Boolean)


53
54
55
# File 'lib/rdkafka/error.rb', line 53

def is_partition_eof?
  code == :partition_eof
end

#to_sString

Human readable representation of this error.

Returns:

  • (String)


42
43
44
45
46
47
48
49
# File 'lib/rdkafka/error.rb', line 42

def to_s
  message_prefix_part = if message_prefix
                   "#{message_prefix} - "
                 else
                   ''
                 end
  "#{message_prefix_part}#{Rdkafka::Bindings.rd_kafka_err2str(@rdkafka_response)} (#{code})"
end