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