Menu
Coddy logo textTech

Repaso: División segura

Parte de la sección Lógica y Flujo del Journey de C++ de Coddy — lección 53 de 56.

challenge icon

Desafío

Fácil

Crea un programa que implemente una división segura utilizando un manejo integral de excepciones. Este desafío pondrá a prueba tu capacidad para combinar el diseño de funciones con la gestión de excepciones para manejar errores de división por cero de manera adecuada.

Se proporcionarán las siguientes entradas:

  • Un double numerator que representa el número a dividir
  • Un double denominator que representa el número por el cual se divide

Tu programa debe:

  1. Crear una función llamada safeDivide que reciba dos parámetros de tipo double (numerator y denominator)
  2. Dentro de la función, verificar si el denominador es igual a cero
  3. Si el denominador es cero, lanzar (throw) el string "Division by zero error"
  4. Si el denominador no es cero, calcular el resultado de la división y devolverlo como un double
  5. En la función principal, llamar a safeDivide dentro de un bloque try con los valores de entrada
  6. Usar un bloque catch para manejar la excepción de string lanzada
  7. Imprimir el mensaje apropiado basándose en si la división tiene éxito o falla

Utiliza el siguiente formato de salida exacto:

Para una división exitosa:

Result: [division_result]

Para un error de división por cero:

Error: Division by zero error

Recuerda que cuando el denominador es cero, tu función debe lanzar (throw) inmediatamente una excepción antes de intentar la división. El bloque catch debe especificar el tipo const char* para manejar el literal de cadena lanzado. Cuando se lanza una excepción, el programa saltará directamente desde la sentencia throw al bloque catch correspondiente, evitando que ocurra cualquier división por cero y permitiendo que tu programa maneje el error con elegancia en lugar de cerrarse inesperadamente.

Pruébalo tú mismo

#include <iostream>
using namespace std;

int main() {
    // Leer entrada
    double numerator, denominator;
    cin >> numerator >> denominator;
    
    // TODO: Escribe tu código aquí
    // Crea la función safeDivide arriba de main()
    // Usa un bloque try-catch para manejar excepciones
    
    return 0;
}

Todas las lecciones de Lógica y Flujo