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");
}Desafío
FácilCrea un método llamado divideNumbers que acepte tres argumentos:
- Un String (
num1) que represente el primer número - Un String (
num2) que represente el segundo número - Un entero (
index) que represente un índice de matriz
El método debe:
- Crear una matriz de tamaño 2
- Almacenar en el índice indicado el valor entero obtenido al analizar num1, dividido por el valor entero obtenido al analizar num2
- Devolver el valor del índice indicado
- 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));
}
}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
1Arreglos Multidimensionales
Básicos de Arreglos 2DAccediendo a Elementos de Arreglos 2DBucles Anidados con Arreglos 2DResumen - Arreglos 2DSuma y Resta de MatricesArreglos IrregularesArreglos 3D y Más AlláPatrones Comunes de Arreglos 2DResumen - Todo Sobre Arreglos4HashSet Parte 1
¿Qué es un HashSet?Agregando un elementoEliminando un elementoComprobando si existe un elementoVacío y tamañoLimpiar y clonarResumen - HashSet7Manejo Básico de Errores
Básicos de Try-CatchBloque FinallyLanzamiento de ExcepcionesExcepciones Personalizadas2HashMap Parte 1
¿Qué es un HashMap?Declarar un HashMapAcceder a ValoresVerificar si una Clave ExisteModificar DiccionariosResumen - HashMap3HashMap Parte 2
Métodos de HashMapIterar con keySet()Iterar con entrySet()HashMap AnidadoResumen - Gestionar AlmacénResumen - Operaciones de HashMap6Flujo de Control Avanzado
Sentencias EtiquetadasExpresión SwitchCoincidencia de PatronesCláusulas de GuardiaResumen - Flujo de Control9Proyecto - Contador de Palabras Únicas
Entrada y Almacenamiento de TextoProcesamiento de PalabrasPractica por tu cuenta: Compilador de Java online