Exception: TIMEx::TimeoutError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/timex/expired.rb

Overview

StandardError raised when a deadline expires and the caller opted into on_timeout: :raise_standard.

Carries the same strategy, deadline_ms, and elapsed_ms readers as Expired, plus #original pointing at the source Expired for inspection or re-raise.

See Also:

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message = "deadline expired", strategy: nil, deadline_ms: nil, elapsed_ms: nil, original: nil) ⇒ TimeoutError

Returns a new instance of TimeoutError.

Parameters:

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

    human-readable reason

  • strategy (Symbol, nil) (defaults to: nil)

    strategy name symbol when known

  • deadline_ms (Float, Integer, nil) (defaults to: nil)

    remaining budget in ms when expired

  • elapsed_ms (Float, Integer, nil) (defaults to: nil)

    elapsed time in ms when expired

  • original (Expired, nil) (defaults to: nil)

    the underlying Expired when created via from



67
68
69
70
71
72
73
# File 'lib/timex/expired.rb', line 67

def initialize(message = "deadline expired", strategy: nil, deadline_ms: nil, elapsed_ms: nil, original: nil)
  super(message)
  @strategy = strategy
  @deadline_ms = deadline_ms
  @elapsed_ms = elapsed_ms
  @original = original
end

Instance Attribute Details

#deadline_msObject (readonly)

Returns the value of attribute deadline_ms.



46
47
48
# File 'lib/timex/expired.rb', line 46

def deadline_ms
  @deadline_ms
end

#elapsed_msObject (readonly)

Returns the value of attribute elapsed_ms.



46
47
48
# File 'lib/timex/expired.rb', line 46

def elapsed_ms
  @elapsed_ms
end

#originalObject (readonly)

Returns the value of attribute original.



46
47
48
# File 'lib/timex/expired.rb', line 46

def original
  @original
end

#strategyObject (readonly)

Returns the value of attribute strategy.



46
47
48
# File 'lib/timex/expired.rb', line 46

def strategy
  @strategy
end

Class Method Details

.from(expired) ⇒ TimeoutError

Builds a TIMEx::TimeoutError from an Expired, preserving message and metrics.

Parameters:

  • expired (Expired)

    the deadline exception to wrap

Returns:

  • (TimeoutError)

    new error with #original set to expired



52
53
54
55
56
57
58
59
60
# File 'lib/timex/expired.rb', line 52

def self.from(expired)
  new(
    expired.message,
    strategy: expired.strategy,
    deadline_ms: expired.deadline_ms,
    elapsed_ms: expired.elapsed_ms,
    original: expired
  )
end