Exception: BugBunny::Error

Inherits:
StandardError
  • Object
show all
Defined in:
lib/bug_bunny/exception.rb

Overview

Clase base para todas las excepciones lanzadas por la gema BugBunny. Permite capturar cualquier error de la librería con un ‘rescue BugBunny::Error`.

Para los errores derivados de una respuesta RPC (los que levanta Middleware::RaiseError), expone de forma uniforme la **materia prima** del error: el ‘status` y el `raw_response` (cuerpo crudo). La gema es **agnóstica al payload**: no interpreta la estructura del cuerpo de error: es el boundary de cada servicio quien lee `raw_response` y decide la semántica de dominio (códigos, detalles de validación, etc.).

Examples:

Leer la materia prima en el boundary del servicio

rescue BugBunny::Error => e
  e.status       # => 409
  e.raw_response # => { "error" => { "code" => "...", "message" => "...", "details" => {} } }

Instance Attribute Summary collapse

Instance Attribute Details

#raw_responseHash, ...

Note:

**No loguear ni enviar a sinks (Sentry/logs) sin sanitizar.** El cuerpo crudo puede contener datos sensibles (p. ej. en ‘details`). Antes de cualquier sink, filtrar las claves sensibles del fleet (`password|pass|passwd|secret|token|api_key|auth`) → `[FILTERED]`. La gema entrega el cuerpo crudo a propósito; sanitizarlo es responsabilidad del consumidor.

Returns El cuerpo crudo de la respuesta de error, tal como llegó por el wire. ‘nil` para errores que no provienen de una respuesta RPC (ej: CommunicationError, ConfigurationError).

Returns:

  • (Hash, String, nil)

    El cuerpo crudo de la respuesta de error, tal como llegó por el wire. ‘nil` para errores que no provienen de una respuesta RPC (ej: CommunicationError, ConfigurationError).



31
32
33
# File 'lib/bug_bunny/exception.rb', line 31

def raw_response
  @raw_response
end

#statusInteger?

Returns El código de estado de la respuesta que originó el error (ej: 400, 404, 409, 422, 500). ‘nil` para errores que no provienen de una respuesta RPC.

Returns:

  • (Integer, nil)

    El código de estado de la respuesta que originó el error (ej: 400, 404, 409, 422, 500). ‘nil` para errores que no provienen de una respuesta RPC.



36
37
38
# File 'lib/bug_bunny/exception.rb', line 36

def status
  @status
end