Explicación del concepto
Esta lección se centra en escribir código C++ que falle de manera controlada en lugar de romperse silenciosamente o colapsar sin contexto. Practicarás cómo manejar un problema conocido, reportarlo claramente y mantener la estructura del programa fácil de seguir. La parte de fiabilidad es tan importante como la sintaxis: un buen programa C++ para principiantes debe hacer que la ruta de éxito sea obvia y la ruta de fallo comprensible. Al trabajar con un pequeño ejemplo protegido, verás cómo las excepciones, los mensajes de error y las reglas de propiedad disciplinadas hacen que los programas sean más seguros de ejecutar y más fáciles de depurar.
Dónde poner el código
- Comienza con variables y entradas. Mantén explícitos los `includes`, la función `main` y los tipos de datos.
- Añade la lógica de procesamiento en la sección central.
- Finaliza con la salida y una validación rápida.
Referencia de comandos
- Ejecuta el programa primero con un valor válido, luego intenta con una cadena vacía y compara la salida.
- Explica qué función detecta la entrada incorrecta y qué función la reporta al usuario.
- Modifica el ejemplo para que el mensaje de error sea más específico sin cambiar el flujo general.
- Anota una razón por la que capturar un tipo de excepción estándar mantiene el ejemplo flexible.
Guía paso a paso
- Compila y ejecuta el programa base con la entrada válida actual.
- Cambia la entrada a una cadena vacía y observa cómo se maneja el fallo.
- Rastrea la ruta desde `parseCount` hasta `main` para que puedas ver dónde se lanza y se captura la excepción.
- Ajusta una parte del mensaje o los nombres de las variables para mejorar la claridad.
- Revisa si tanto el caso de éxito como el caso de fallo son fáciles de entender a primera vista.
Ejercicios prácticos
- Crea un analizador similar para edad o cantidad y rechaza la entrada vacía de la misma manera.
- Añade una regla más que rechace números negativos y prueba tanto los valores permitidos como los rechazados.
- Reescribe el ejemplo para que la lógica de análisis permanezca en su propia función y `main` solo maneje la salida.
Retos de código
- Almacena varias entradas de texto en una pequeña lista y procésalas una por una, reportando los fallos claramente.
- Compara el manejo basado en excepciones con una versión que devuelve un valor de estado, luego describe la compensación.
Mini tareas de práctica
- Añade una prueba manual para texto inválido como "abc".
- Renombra una función o variable para mejorar la intención.
- Escribe un resumen de una línea sobre qué hace que este ejemplo sea más fiable que una conversión directa sin verificar.
Error común
Skipping input validation or mixing logic/output in one unstructured block.
Mini reto de la vida real
Build a small real-life example for this lesson topic using 3 clear steps: input, process, output.