Resumen - División segura
Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 43 de 65.
Desafío
FácilCrea un programa que implemente una calculadora de división segura utilizando el manejo de excepciones. Tu programa debe manejar los errores de división por cero de manera adecuada y proporcionar comentarios claros a los usuarios cuando ocurran errores.
- Lee una entrada de cadena que represente el primer número (dividendo)
- Lee una entrada de cadena que represente el segundo número (divisor)
- Crea una función llamada
safeDivisionque tome dos parámetros double y devuelva un resultado double - La función debe usar un bloque
try-catchpara manejar posibles errores de división: - En el bloque
try: Verifica si el divisor es cero y lanza una excepción con el mensaje"Division by zero is not allowed"si es verdadero, de lo contrario realiza la división - En el bloque
catch: Maneja la excepción y devuelve0.0como un valor predeterminado seguro - Convierte las cadenas de entrada a valores double usando
double.parse() - Llama a la función
safeDivisioncon los valores convertidos - Muestra los resultados en el formato exacto que se muestra a continuación
Por ejemplo, si las entradas son "10.0" y "2.0", tu programa debería mostrar:
Safe Division Calculator
========================
First number: 10.0
Second number: 2.0
Performing division...
Result: 5.0
Operation completed successfullySi las entradas son "15.0" y "0.0", tu programa debería mostrar:
Safe Division Calculator
========================
First number: 15.0
Second number: 0.0
Performing division...
Error: Division by zero is not allowed
Using safe default value: 0.0
Operation completed with error handlingSi las entradas son "7.5" y "2.5", tu programa debería mostrar:
Safe Division Calculator
========================
First number: 7.5
Second number: 2.5
Performing division...
Result: 3.0
Operation completed successfullyTu programa debe implementar la función safeDivision que utiliza un bloque try-catch para manejar la división por cero. En el bloque try, verifica si el divisor es igual a 0.0 y usa la palabra clave throw para activar manualmente una excepción si es verdadero. En el bloque catch, imprime el mensaje de error y devuelve 0.0 como un valor de respaldo seguro. El programa principal debe llamar a esta función y mostrar diferentes mensajes de finalización según si ocurrió un error o no.
Pruébalo tú mismo
import 'dart:io';
// TODO: Crea la función safeDivision aquí
void main() {
// Leer entrada
String? firstInput = stdin.readLineSync();
String? secondInput = stdin.readLineSync();
// Convertir cadenas a double
double firstNumber = double.parse(firstInput!);
double secondNumber = double.parse(secondInput!);
// Mostrar encabezado
print("Safe Division Calculator");
print("========================");
print("First number: $firstNumber");
print("Second number: $secondNumber");
print("Performing division...");
// TODO: Llamar a la función safeDivision y manejar el resultado
// Recuerda verificar si ocurrió un error para mostrar el mensaje de finalización apropiado
}Todas las lecciones de Lógica y Flujo
1Manipulación avanzada de listas
Propiedades de listas: first y lastEstado de la lista: isEmpty y isNotEmptyInvertir una listaAñadir a una lista: insertEliminación en listas: removeWhereBúsqueda en una lista: indexOfOrdenar una listaMezclar una listaResumen - Organizador de listas4Manipulación avanzada de mapas
Iterar sobre un mapaComprobación de claves y valoresPropiedades del mapa: keys y valuesAdición condicional: putIfAbsentEliminar entradas de un mapaMapas anidadosResumen - Actualización de inventario2Operaciones funcionales con listas
Transformar con 'map'Filtrar con 'where'Uso de '.toList()'Comprobar condiciones con 'any'Condiciones con 'every'Búsqueda con 'firstWhere'Resumen - Filtrado de datos5Proyecto: Calculadora de carrito de compras
Configuración del proyectoAgregar artículos al carrito3Conjuntos
¿Qué es un Conjunto?Crear un ConjuntoAñadir y eliminar elementos de un ConjuntoComprobar elementos en un ConjuntoConvertir una lista en un ConjuntoUnión de ConjuntosIntersección de ConjuntosDiferencia de ConjuntosResumen - Lista de invitados única6Manejo básico de errores
¿Qué son las excepciones?El bloque 'try-catch'Capturar excepciones con 'on'El bloque 'finally'Lanzar una excepciónResumen - División segura