Saltearse al contenido

Manejo de Errores

Este ejemplo muestra cómo capturar errores de forma centralizada en Zuno usando un middleware de manejo de errores. Esto te permite:

  • Evitar duplicación de lógica de errores
  • Responder con mensajes consistentes
  • Registrar errores para depuración

error-handling-example/
├── CMakeLists.txt
└── main.cpp

cmake_minimum_required(VERSION 3.20)
project(error_handling_example)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
include(FetchContent)
FetchContent_Declare(
zuno
GIT_REPOSITORY https://github.com/ZunoFramework/zuno.git
GIT_TAG main
)
FetchContent_MakeAvailable(zuno)
add_executable(error-handling-example main.cpp)
target_link_libraries(error-handling-example PRIVATE zuno)

#include <zuno/zuno.hpp>
#include <stdexcept>
int main() {
zuno::App app;
// Middleware de manejo de errores
app.use([](auto& req, auto& res, zuno::Next next) {
try {
next();
} catch (const std::exception& ex) {
res.status(500).json({
{ "error", "Error interno del servidor" },
{ "detalle", ex.what() }
});
}
});
// Ruta que lanza una excepción
app.get("/crash", [](Request& req, Response& res) {
throw std::runtime_error("Algo salió mal");
});
app.listen(3000);
}

Terminal window
curl http://localhost:3000/crash

Deberías recibir una respuesta JSON como:

{
"error": "Error interno del servidor",
"detalle": "Algo salió mal"
}


Zuno te permite capturar errores de forma elegante—para que tus APIs sean más robustas y predecibles.