Exception: Invoance::Error

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

Overview

Base error for everything the SDK raises — API responses, network failures, and client-side validation. A single rescue Invoance::Error catches anything the SDK throws.

begin
client.events.ingest(event_type: "user.login", payload: { user_id: "u_42" })
rescue Invoance::QuotaExceededError
puts "Upgrade your plan"
rescue Invoance::TimeoutError
puts "Request timed out — retrying"
rescue Invoance::Error => e
puts "Invoance error: #{e.message}"
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, status_code: nil, error_code: nil, body: nil, retry_after_seconds: nil, request_context: nil) ⇒ Error

Returns a new instance of Error.

Parameters:

  • message (String)
  • status_code (Integer, nil) (defaults to: nil)
  • error_code (String, nil) (defaults to: nil)
  • body (Hash, nil) (defaults to: nil)

    parsed JSON body (string keys)

  • retry_after_seconds (Numeric, nil) (defaults to: nil)
  • request_context (Hash, nil) (defaults to: nil)

    { method:, path: }



26
27
28
29
30
31
32
33
34
# File 'lib/invoance/errors.rb', line 26

def initialize(message, status_code: nil, error_code: nil, body: nil,
               retry_after_seconds: nil, request_context: nil)
  super(message)
  @status_code = status_code
  @error_code = error_code
  @body = body
  @retry_after_seconds = retry_after_seconds
  @request_context = request_context
end

Instance Attribute Details

#bodyObject (readonly)

Returns the value of attribute body.



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

def body
  @body
end

#error_codeObject (readonly)

Returns the value of attribute error_code.



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

def error_code
  @error_code
end

#request_contextObject (readonly)

Returns the value of attribute request_context.



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

def request_context
  @request_context
end

#retry_after_secondsObject (readonly)

Returns the value of attribute retry_after_seconds.



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

def retry_after_seconds
  @retry_after_seconds
end

#status_codeObject (readonly)

Returns the value of attribute status_code.



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

def status_code
  @status_code
end