Module: VerifactuRails::Error

Included in:
CertificadoError, RespuestaError, TransporteError, ValidacionError
Defined in:
lib/verifactu_rails/error.rb

Overview

Marcador común de todo error propio de la gema.

Es un MÓDULO y no una clase base a propósito. rescue casa por Module#===, así que incluirlo basta para que funcione rescue VerifactuRails::Error, y a la vez deja libre la herencia para que cada error conserve la clase de Ruby que le corresponde semánticamente.

En concreto, ValidacionError sigue siendo un ArgumentError, que es lo que cualquier rubyista espera al pasar un argumento inválido. Una jerarquía propia colgando de StandardError habría obligado a elegir entre una cosa y la otra.

begin
registro = VerifactuRails::RegistroAlta.new(...)
rescue VerifactuRails::Error => e   # cualquier cosa que venga de la gema
...
end

rescue ArgumentError                # sigue atrapando las validaciones