Exception: CDC::Parallel::ProcessorExecutionError

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

Overview

Represents an exception raised inside a worker Ractor.

Worker exceptions are serialized before they cross the Ractor boundary and reconstructed as ‘ProcessorExecutionError` instances by ResultCollector.normalize. The original exception class name, message, and backtrace are exposed for diagnostics.

Examples:

Inspecting the original worker exception

result = runtime.process(event)
if result.failure?
  error = result.error
  error.original_class
  error.original_message
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(original_class:, original_message:, original_backtrace: []) ⇒ void

Create a reconstructed worker exception.

Parameters:

  • original_class (String)

    Class name of the exception raised inside the worker.

  • original_message (String)

    Message from the exception raised inside the worker.

  • original_backtrace (Array<String>) (defaults to: [])

    Backtrace captured inside the worker.



68
69
70
71
72
73
74
75
# File 'lib/cdc/parallel/errors.rb', line 68

def initialize(original_class:, original_message:, original_backtrace: [])
  @original_class = original_class
  @original_message = original_message
  @original_backtrace = original_backtrace.freeze

  super("#{original_class}: #{original_message}")
  set_backtrace(@original_backtrace) unless @original_backtrace.empty?
end

Instance Attribute Details

#original_backtraceArray<String> (readonly)

original exception backtrace.

Returns:

  • (Array<String>)

    the current value of original_backtrace



56
57
58
# File 'lib/cdc/parallel/errors.rb', line 56

def original_backtrace
  @original_backtrace
end

#original_classString (readonly)

original exception class name.

Returns:

  • (String)

    the current value of original_class



56
57
58
# File 'lib/cdc/parallel/errors.rb', line 56

def original_class
  @original_class
end

#original_messageString (readonly)

original exception message.

Returns:

  • (String)

    the current value of original_message



56
57
58
# File 'lib/cdc/parallel/errors.rb', line 56

def original_message
  @original_message
end