class Cuprum::Errors::UncaughtException
An error returned when a command encounters an unhandled exception.
Constants
- TYPE
Short string used to identify the type of error.
Attributes
cause[R]
exception[R]
@return [StandardError] the exception that was raised.
Public Class Methods
new(exception:, message: 'uncaught exception')
click to toggle source
@param exception [StandardError] The exception that was raised. @param message [String] A message to display. Will be annotated with
details on the exception and the exception's cause (if any).
Calls superclass method
Cuprum::Error::new
# File lib/cuprum/errors/uncaught_exception.rb, line 15 def initialize(exception:, message: 'uncaught exception') @exception = exception @cause = exception.cause super(message: generate_message(message)) end
Private Instance Methods
as_json_data()
click to toggle source
# File lib/cuprum/errors/uncaught_exception.rb, line 29 def as_json_data # rubocop:disable Metrics/MethodLength data = { 'exception_backtrace' => exception.backtrace, 'exception_class' => exception.class, 'exception_message' => exception.message } return data unless cause data.update( { 'cause_backtrace' => cause.backtrace, 'cause_class' => cause.class, 'cause_message' => cause.message } ) end
generate_message(message)
click to toggle source
# File lib/cuprum/errors/uncaught_exception.rb, line 47 def generate_message(message) message = "#{message} #{exception.class}: #{exception.message}" return message unless cause message + " caused by #{cause.class}: #{cause.message}" end