Menu
CoddyTech

Básicos de Try-Catch

Parte de la sección Lógica y Flujo del Journey de Java de Coddy. Lección 40 de 59.

Los bloques try-catch en Java se utilizan para gestionar excepciones (errores) que podrían producirse durante la ejecución del programa. El código que podría lanzar una excepción va en el bloque try, y el código de gestión de errores va en el bloque catch.

Esta es la estructura básica de un bloque try-catch:

try {
   // Código que podría lanzar una excepción
} catch (ExceptionType e) {
   // Código para manejar la excepción
}

Veámoslo en acción con Integer.parseInt(), que convierte un String en un entero:

String text = "abc";
try {
   int number = Integer.parseInt(text);
   System.out.println(number);
} catch (NumberFormatException e) {
   System.out.println("Error: Not a valid number");
}

Después de ejecutar el código anterior, la salida es:

Error: Not a valid number

Un solo try puede ir seguido de varios bloques catch, uno por cada tipo de excepción. Java ejecuta el primer bloque cuyo tipo coincide con la excepción que se lanzó:

try {
   int number = Integer.parseInt(text);
   System.out.println(10 / number);
} catch (NumberFormatException e) {
   System.out.println("Error: Not a valid number");
} catch (ArithmeticException e) {
   System.out.println("Error: Division by zero");
}
challenge icon

Desafío

Fácil

Crea un método llamado divideNumbers que acepte tres argumentos:

  1. Un String (num1) que represente el primer número
  2. Un String (num2) que represente el segundo número
  3. Un entero (index) que represente un índice de matriz

El método debe:

  1. Crear una matriz de tamaño 2
  2. Almacenar en el índice indicado el valor entero obtenido al analizar num1, dividido por el valor entero obtenido al analizar num2
  3. Devolver el valor del índice indicado
  4. Manejar todas las excepciones posibles y devolver el mensaje de error correspondiente en su lugar

Los mensajes devueltos deben ser:

  • Para NumberFormatException: "Error: Invalid number format"
  • Para ArithmeticException: "Error: Division by zero"
  • Para ArrayIndexOutOfBoundsException: "Error: Invalid array index"
  • Si la operación se realiza correctamente: devolver el resultado como una cadena

Pruébalo tú mismo

import java.util.Scanner;

public class Main {
    public static String divideNumbers(String num1, String num2, int index) {
        // Escribe tu código aquí
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String num1 = scanner.nextLine();
        String num2 = scanner.nextLine();
        int index = Integer.parseInt(scanner.nextLine());
        
        System.out.println(divideNumbers(num1, num2, index));
    }
}
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

Practica por tu cuenta: Compilador de Java online