Exception: BrainzLab::TimeoutError

Inherits:
Error
  • Object
show all
Defined in:
lib/brainzlab/errors.rb

Overview

Raised when an operation times out.

Examples:

Request timeout

raise BrainzLab::TimeoutError.new(
  "Request timed out after 30 seconds",
  hint: "The operation took too long. Try again or increase timeout settings.",
  code: "request_timeout"
)

Constant Summary

Constants inherited from Error

Error::DOCS_BASE_URL

Instance Attribute Summary collapse

Attributes inherited from Error

#code, #context, #docs_url, #hint

Instance Method Summary collapse

Methods inherited from Error

#as_json, #detailed_message, #inspect, #to_h, #to_s

Constructor Details

#initialize(message = nil, hint: nil, docs_url: nil, code: nil, context: nil, timeout_seconds: nil) ⇒ TimeoutError

Returns a new instance of TimeoutError.



310
311
312
313
314
315
316
317
318
319
320
321
# File 'lib/brainzlab/errors.rb', line 310

def initialize(message = nil, hint: nil, docs_url: nil, code: nil, context: nil, timeout_seconds: nil)
  @timeout_seconds = timeout_seconds

  hint ||= 'The operation took too long. Try again or increase timeout settings.'
  docs_url ||= "#{DOCS_BASE_URL}/sdk/ruby/configuration#timeouts"
  code ||= 'timeout'

  context ||= {}
  context[:timeout_seconds] = timeout_seconds if timeout_seconds

  super(message, hint: hint, docs_url: docs_url, code: code, context: context.empty? ? nil : context)
end

Instance Attribute Details

#timeout_secondsInteger? (readonly)

Returns Timeout duration in seconds.

Returns:

  • (Integer, nil)

    Timeout duration in seconds



308
309
310
# File 'lib/brainzlab/errors.rb', line 308

def timeout_seconds
  @timeout_seconds
end