Deja de lanzar excepciones: Patrón ServiceResult<T> para una API limpia

Descubre un enfoque claro para manejar errores en APIs con ServiceResult[T], Uniones Discriminadas, C#, records y pattern matching para respuestas previsibles y fáciles de testear

30 ago 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

¿Manejo de errores en APIs complicado y desordenado? En Q2BSTUDIO creemos que hay una forma más clara y mantenible de hacerlo aprovechando un patrón sencillo inspirado en las Uniones Discriminadas y adaptado a C# con records y pattern matching.

El problema común: muchas APIs utilizan excepciones para situaciones esperadas como usuario no encontrado o devuelven nulls ambiguos que no explican qué pasó. Eso dificulta la lectura del flujo y obliga a propagar try catch por todos lados. En lugar de eso proponemos devolver siempre un resultado con forma conocida usando ServiceResult[T].

Qué es ServiceResult[T] En términos simples ServiceResult[T] es un tipo que representa dos estados posibles: éxito o fallo. En el éxito se devuelve la entidad esperada. En el fallo se devuelve una lista de errores y un tipo de error que categoriza la causa como Validation NotFound Conflict Database o Unexpected. De este modo cada llamada al servicio tiene una respuesta predecible y tipada.

Cómo ayuda esto Evitas lanzar excepciones para el flujo normal de la aplicación reduces ambigüedad frente a nulls y obligas al consumidor a tratar los dos casos. Además el patrón es compatible con prácticas modernas de C# como records y pattern matching lo que resulta en código más conciso y legible.

Ejemplo conceptual Imagina un servicio que actualiza una película. En vez de lanzar una excepción si la película no existe devuelves ServiceResult[T] con Failure y ErrorType NotFound. Si la actualización es correcta devuelves ServiceResult[T] con Success que contiene la entidad. En el controlador o handler se hace un pattern matching sobre Success y Failure y se mapean los ErrorType a códigos HTTP 400 404 409 500 según corresponda. De este modo el controlador permanece delgado y centrado en traducir el resultado a una respuesta HTTP.

Manejo de errores reales Para errores de infraestructura como una excepción de base de datos se recomienda capturarla dentro del servicio registrar el incidente y devolver ServiceResult[T] con ErrorType Database. Las excepciones verdaderamente excepcionales siguen correspondiendo a excepciones lanzadas pero la mayor parte del flujo normal y de los errores esperados se modelan como ServiceResult[T].

Beneficios predictibilidad el llamador debe manejar éxito y fallo expresividad puedes devolver múltiples mensajes de error y clasificar la causa rendimiento evitas lanzar y capturar excepciones como control de flujo y separación de responsabilidades los servicios no conocen HTTP y los endpoints solo traducen ErrorType a códigos de estado.

Mapeo a HTTP ejemplo práctico ErrorType Validation mapea a 400 ErrorType NotFound a 404 ErrorType Conflict a 409 y el resto a 500. De esta manera el endpoint solo traduce la intención y no hace lógica de negocio ni manejo complejo de excepciones.

Flujo resumido ServiceCall pregunta fue exitoso si Success devuelve entidad si Failure devuelve Errors[] y ErrorType luego el controlador traduce a la respuesta adecuada.

Consideraciones No siempre es necesario en aplicaciones muy pequeñas el patrón puede parecer sobredimensionado. Es importante diseñar un ErrorType exhaustivo para mantener la expresividad. Con una buena planificación ServiceResult[T] escala mejor que múltiples excepciones personalizadas es más fácil de testear y más fiable con el tiempo.

Recomendación práctica Implementa ServiceResult[T] en tu capa de servicios usa métodos de fábrica para crear Success y Failure y centraliza la captura de excepciones de infraestructura dentro del servicio. Enumera ErrorType para cubrir Validation NotFound Conflict Database Unexpected y amplíalo cuando surjan casos reales en tu dominio.

Sobre Q2BSTUDIO Q2BSTUDIO es una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida que ayuda a empresas a transformar sus procesos mediante soluciones personalizadas. Somos expertos en inteligencia artificial e ia para empresas desarrollamos agentes IA integrados y soluciones basadas en modelos, ofrecemos servicios de ciberseguridad para proteger activos críticos y proporcionamos servicios cloud aws y azure para desplegar infraestructuras escalables y seguras. También ofrecemos servicios inteligencia de negocio e implementaciones de power bi para convertir datos en decisiones accionables.

Cómo Q2BSTUDIO puede ayudar a tu proyecto Podemos ayudarte a definir la estrategia de error handling e implementar ServiceResult[T] en tu arquitectura de microservicios o API diseñar aplicaciones a medida integrando inteligencia artificial y agentes IA optimizar el rendimiento con servicios cloud aws y azure y garantizar la seguridad con prácticas avanzadas de ciberseguridad. Además entregamos soluciones de inteligencia de negocio con power bi para que obtengas dashboards y analítica avanzada.

Palabras clave para mejorar posicionamiento aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA power bi.

Reflexión final ServiceResult[T] es una alternativa práctica a lanzar excepciones para casos esperados y a devolver resultados ambiguos. Al centralizar el manejo de fallos en la capa de servicios y dejar a los endpoints la responsabilidad de traducir ErrorType a respuestas HTTP se consigue un código más limpio robusto y fácil de mantener. En Q2BSTUDIO aplicamos este tipo de patrones en nuestros desarrollos para garantizar calidad escalabilidad y seguridad en soluciones a medida.

Qué opinas del patrón te gustaría que te ayudemos a implementarlo en tu API o aplicación a medida contacta con Q2BSTUDIO y trabajemos juntos en una solución personalizada que incorpore inteligencia artificial ciberseguridad y servicios cloud aws y azure para impulsar tu negocio.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.