Class: Datadog::Error

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

Overview

Error is a value-object responsible for sanitizing/encapsulating error data

Constant Summary collapse

BlankError =
Error.new
ContainsMessage =
->(v) { v.respond_to?(:message) }

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type = nil, message = nil, backtrace = nil) ⇒ Error

Returns a new instance of Error.



17
18
19
20
21
22
# File 'lib/ddtrace/error.rb', line 17

def initialize(type = nil, message = nil, backtrace = nil)
  backtrace = Array(backtrace).join("\n")
  @type = Utils.utf8_encode(type)
  @message = Utils.utf8_encode(message)
  @backtrace = Utils.utf8_encode(backtrace)
end

Instance Attribute Details

#backtraceObject (readonly)

Returns the value of attribute backtrace.



5
6
7
# File 'lib/ddtrace/error.rb', line 5

def backtrace
  @backtrace
end

#messageObject (readonly)

Returns the value of attribute message.



5
6
7
# File 'lib/ddtrace/error.rb', line 5

def message
  @message
end

#typeObject (readonly)

Returns the value of attribute type.



5
6
7
# File 'lib/ddtrace/error.rb', line 5

def type
  @type
end

Class Method Details

.build_from(value) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/ddtrace/error.rb', line 7

def self.build_from(value)
  case value
  when Error then value
  when Array then new(*value)
  when Exception then new(value.class, value.message, value.backtrace)
  when ContainsMessage then new(value.class, value.message)
  else BlankError
  end
end