Menu
Coddy logo textTech

El bloque 'try-catch'

Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 39 de 65.

Ahora que entiendes qué son las excepciones, aprendamos cómo manejarlas con elegancia usando el bloque try-catch. Esta es la herramienta fundamental que evita que tu programa se bloquee cuando algo sale mal.

El bloque try-catch funciona envolviendo el código potencialmente problemático en una sección try. Si ocurre una excepción, en lugar de que su programa falle, Dart salta inmediatamente a la sección catch donde puede manejar el error de manera apropiada.

try {
  // Código que podría causar una excepción
  int number = int.parse("abc");
} catch (e) {
  // Código que se ejecuta si ocurre una excepción
  print("Something went wrong: $e");
}

En este ejemplo, intentar convertir la cadena "abc" a un entero normalmente haría que tu programa fallara. Sin embargo, debido a que está envuelto en un bloque try, la excepción se captura y se maneja en el bloque catch en su lugar. La variable e contiene información sobre lo que salió mal.

Este enfoque permite que su programa continúe ejecutándose incluso cuando ocurren situaciones inesperadas, lo que hace que su código sea mucho más robusto y fácil de usar.

challenge icon

Desafío

Fácil

Crea un programa que convierta de forma segura cadenas de entrada del usuario en números utilizando un bloque try-catch. Tu programa debe manejar casos en los que la entrada podría no ser un número válido y evitar que el programa falle.

  1. Lee una entrada de cadena que represente un número que necesita ser convertido a un entero
  2. Usa un bloque try-catch para intentar la conversión de forma segura utilizando int.parse()
  3. Si la conversión es exitosa, calcula el cuadrado del número (multiplícalo por sí mismo)
  4. Si la conversión falla y ocurre una excepción, maneja el error de manera adecuada
  5. Muestra el resultado o mensaje de error correspondiente en el formato exacto que se muestra a continuación

Por ejemplo, si la entrada es "5", tu programa debería mostrar:

Processing input: 5
Conversion successful!
The square of 5 is: 25

Si la entrada es "abc", tu programa debería mostrar:

Processing input: abc
Error: Cannot convert 'abc' to a number
Please enter a valid integer

Si la entrada es "12", tu programa debería mostrar:

Processing input: 12
Conversion successful!
The square of 12 is: 144

Tu programa debe usar un bloque try-catch para envolver la operación int.parse(). En la sección try, intenta convertir la cadena de entrada en un entero y calcula su cuadrado. En la sección catch, maneja cualquier excepción que ocurra durante la conversión y muestra un mensaje de error apropiado. El programa debe continuar ejecutándose normalmente independientemente de si la conversión tiene éxito o falla.

Hoja de referencia

Usa bloques try-catch para manejar excepciones de manera elegante y evitar que el programa falle:

try {
  // Código que podría causar una excepción
  int number = int.parse("abc");
} catch (e) {
  // Código que se ejecuta si ocurre una excepción
  print("Something went wrong: $e");
}

El bloque try contiene código potencialmente problemático, mientras que el bloque catch maneja cualquier excepción que ocurra. La variable e contiene información sobre la excepción.

Pruébalo tú mismo

import 'dart:io';

void main() {
  // Leer la cadena de entrada
  String? input = stdin.readLineSync();
  
  // Mostrar mensaje de procesamiento
  print('Processing input: $input');
  
  // TODO: Escribe tu código a continuación
  // Usa un bloque try-catch para convertir de forma segura la entrada a entero
  // Calcula el cuadrado si la conversión es exitosa
  // Maneja cualquier excepción que ocurra durante la conversión
  
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo