Exception: Poodle::Error

Inherits:
StandardError
  • Object
show all
Defined in:
lib/poodle/errors/base_error.rb

Overview

Base exception class for all Poodle SDK errors

Examples:

Catching all Poodle errors

begin
  client.send_email(email)
rescue Poodle::Error => e
  puts "Poodle error: #{e.message}"
  puts "Context: #{e.context}"
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message = "", context: {}, status_code: nil) ⇒ Error

Initialize a new error

Parameters:

  • message (String) (defaults to: "")

    the error message

  • context (Hash) (defaults to: {})

    additional context information

  • status_code (Integer, nil) (defaults to: nil)

    HTTP status code



25
26
27
28
29
30
# File 'lib/poodle/errors/base_error.rb', line 25

def initialize(message = "", context: {}, status_code: nil)
  @original_message = message
  super(message)
  @context = context
  @status_code = status_code
end

Instance Attribute Details

#contextHash (readonly)

Returns additional context information about the error.

Returns:

  • (Hash)

    additional context information about the error



15
16
17
# File 'lib/poodle/errors/base_error.rb', line 15

def context
  @context
end

#status_codeInteger? (readonly)

Returns HTTP status code if available.

Returns:

  • (Integer, nil)

    HTTP status code if available



18
19
20
# File 'lib/poodle/errors/base_error.rb', line 18

def status_code
  @status_code
end

Instance Method Details

#messageString

Get the original error message without formatting

Returns:

  • (String)

    the original error message



35
36
37
# File 'lib/poodle/errors/base_error.rb', line 35

def message
  @original_message
end

#to_sString

Get a string representation of the error with context

Returns:

  • (String)

    formatted error information



42
43
44
45
46
47
# File 'lib/poodle/errors/base_error.rb', line 42

def to_s
  result = @original_message
  result += " (Status: #{@status_code})" if @status_code
  result += " Context: #{@context}" unless @context.empty?
  result
end