Exception: Rdkafka::RdkafkaError
- Defined in:
- lib/rdkafka/error.rb
Overview
Error returned by the underlying rdkafka library.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#broker_message ⇒ String
readonly
Error message sent by the broker.
-
#instance_name ⇒ String?
readonly
The name of the rdkafka instance that generated this error.
-
#message_prefix ⇒ String
readonly
Prefix to be used for human readable representation.
-
#rdkafka_response ⇒ Integer
readonly
The underlying raw error response.
Instance Method Summary collapse
-
#==(other) ⇒ Boolean
Error comparison.
-
#code ⇒ Symbol
This error’s code, for example ‘:partition_eof`, `:msg_size_too_large`.
-
#initialize(response, message_prefix = nil, broker_message: nil, instance_name: nil) ⇒ RdkafkaError
constructor
A new instance of RdkafkaError.
-
#is_partition_eof? ⇒ Boolean
Whether this error indicates the partition is EOF.
-
#to_s ⇒ String
Human readable representation of this error.
Constructor Details
#initialize(response, message_prefix = nil, broker_message: nil, instance_name: nil) ⇒ RdkafkaError
Returns a new instance of RdkafkaError.
30 31 32 33 34 35 36 |
# File 'lib/rdkafka/error.rb', line 30 def initialize(response, = nil, broker_message: nil, instance_name: nil) raise TypeError.new("Response has to be an integer") unless response.is_a? Integer @rdkafka_response = response @message_prefix = @broker_message = @instance_name = instance_name end |
Instance Attribute Details
#broker_message ⇒ String (readonly)
Error message sent by the broker
19 20 21 |
# File 'lib/rdkafka/error.rb', line 19 def @broker_message end |
#instance_name ⇒ String? (readonly)
The name of the rdkafka instance that generated this error
23 24 25 |
# File 'lib/rdkafka/error.rb', line 23 def instance_name @instance_name end |
#message_prefix ⇒ String (readonly)
Prefix to be used for human readable representation
15 16 17 |
# File 'lib/rdkafka/error.rb', line 15 def @message_prefix end |
#rdkafka_response ⇒ Integer (readonly)
The underlying raw error response
11 12 13 |
# File 'lib/rdkafka/error.rb', line 11 def rdkafka_response @rdkafka_response end |
Instance Method Details
#==(other) ⇒ Boolean
Error comparison
74 75 76 |
# File 'lib/rdkafka/error.rb', line 74 def ==(other) other.is_a?(self.class) && (to_s == other.to_s) end |
#code ⇒ Symbol
This error’s code, for example ‘:partition_eof`, `:msg_size_too_large`.
40 41 42 43 44 45 46 47 |
# File 'lib/rdkafka/error.rb', line 40 def code code = Rdkafka::Bindings.rd_kafka_err2name(@rdkafka_response).downcase if code[0] == "_" code[1..].to_sym else code.to_sym end end |
#is_partition_eof? ⇒ Boolean
Whether this error indicates the partition is EOF.
67 68 69 |
# File 'lib/rdkafka/error.rb', line 67 def is_partition_eof? code == :partition_eof end |
#to_s ⇒ String
Human readable representation of this error.
51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/rdkafka/error.rb', line 51 def to_s = if "#{} - " else "" end instance_name_part = if instance_name " [#{instance_name}]" else "" end "#{}#{Rdkafka::Bindings.rd_kafka_err2str(@rdkafka_response)} (#{code})#{instance_name_part}" end |