Domina el manejo de errores en Laravel con un enfoque claro y directo. Aquí verás cómo capturar, registrar y responder excepciones usando la clase handler, además de un ejemplo práctico para probar el flujo completo con una ruta GET y una respuesta JSON.
¿Qué es una excepción en Laravel y cómo se maneja?
Una excepción es un evento inesperado que ocurre durante la ejecución y interrumpe el flujo normal del programa. En Laravel, el manejo centralizado se realiza con la clase Handler ubicada en la carpeta app/exceptions dentro del archivo handler.php.
Handler: captura todas las excepciones y define cómo reportarlas y mostrarlas.
Configuración inicial: viene lista al crear un proyecto nuevo.
Flujo: las excepciones se registran con report y se convierten en respuesta con render.
Privacidad: existe un arreglo para no reportar ciertas excepciones y otro para ocultar inputs sensibles como la contraseña.
La respuesta final que ve el usuario puede ser una pantalla de error o un JSON personalizado. Todo depende de lo que definas en handler.php.
¿Cómo usar la clase handler: report y render?
La clase handler ofrece dos puntos clave para intervenir en el ciclo de vida de un error.
report: se usa para registrar excepciones o enviarlas a un servicio externo como Sentry. También puedes inspeccionar temporalmente el error con DD.
render: convierte la excepción en una respuesta HTTP para el navegador o el cliente.
¿Cómo registrar o inspeccionar con report?
Para revisar qué llega a report, puedes hacer un dump rápido.
// app/Exceptions/Handler.phppublicfunctionreport($exception){// Inspección temporal del errordd($exception);// O delegar al comportamiento por defecto// parent::report($exception);}
Si usas un servicio externo, report es el lugar para enviarlo.
¿Cómo personalizar la respuesta con render?
Si prefieres responder en JSON en lugar del HTML por defecto, ajusta render.