class RLP::Error::ObjectDeserializationError
Exception raised if deserialization by a {RLP::Sedes::Serializable} fails.
Attributes
sedes[RW]
Public Class Methods
new(message: nil, serial: nil, sedes: nil, list_exception: nil)
click to toggle source
@param sedes [RLP::Sedes::Serializable] the sedes that failed @param list_exception [RLP::ListDeserializationError] exception raised
by the underlying list sedes, or `nil` if no such exception has been raised
Calls superclass method
RLP::Error::DeserializationError::new
# File lib/rlp/error.rb, line 125 def initialize(message: nil, serial: nil, sedes: nil, list_exception: nil) if message.nil? raise ArgumentError, "list_exception must be present" if list_exception.nil? if list_exception.element_exception raise ArgumentError, "sedes must be present" if sedes.nil? field = sedes.serializable_fields.keys[list_exception.index] message = "Deserialization failed because of field #{field} ('#{list_exception.element_exception}')" else field = nil message = "Deserialization failed because of underlying list ('#{list_exception}')" end end super(message, serial) @sedes = sedes @field = field @list_exception = list_exception end