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