Ejercicios capítulo 12
Ejercicio 1. División por cero. Escribe un programa que solicite al usuario dos números e intente dividir el primero por el segundo. Maneja la excepción ArithmeticException en caso de división por cero.
Solución:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Introduce el primer número:");
int num1 = scanner.nextInt();
System.out.println("Introduce el segundo número:");
int num2 = scanner.nextInt();
try {
int result = num1 / num2;
System.out.println("El resultado es: " + result);
} catch (ArithmeticException e) {
System.out.println("Error: No se puede dividir por cero.");
}
scanner.close();
}
}
Ejercicio 2. Manejo de NumberFormatException: Escribe un programa que solicite al usuario un número entero e intente convertirlo. Maneja la excepción NumberFormatException en caso de que el formato no sea válido. Una vez completado el ejercicio, trata de insertar un número decimal a ver qué pasa.
Solución:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Introduce un número entero:");
String input = scanner.nextLine();
try {
int number = Integer.parseInt(input);
System.out.println("El número introducido es: " + number);
} catch (NumberFormatException e) {
System.out.println("Error: Formato de número no válido.");
}
scanner.close();
}
}
Ejercicio 3. Índice fuera de rango en un array. Escribe un programa que cree un array de 5 elementos y trate de acceder a una posición fuera de rango. Maneja la excepción ArrayIndexOutOfBoundsException
Solución:
public class Main {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
try {
int value = array[10];
System.out.println("El valor es: " + value);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Error: Índice fuera de rango.");
}
}
}
Ejercicio 4. Operación aritmética no válida. Escribe un programa que solicite al usuario dos números y los reste. Maneja la excepción ArithmeticException si la operación no es válida por alguna razón (e.g., resta de valores extremadamente grandes).
Solución:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Introduce el primer número:");
long num1 = scanner.nextLong();
System.out.println("Introduce el segundo número:");
long num2 = scanner.nextLong();
try {
long result = Math.subtractExact(num1, num2);
System.out.println("El resultado es: " + result);
} catch (ArithmeticException e) {
System.out.println("Error: Operación aritmética no válida.");
}
scanner.close();
}
}
Ejercicio 5. Concatenación de cadenas. Escribe un programa que intente concatenar un número muy grande de cadenas, causando un OutOfMemoryError. Maneja la excepción.
Solución:
public class Main {
public static void main(String[] args) {
try {
String str = "";
for (int i = 0; i < Integer.MAX_VALUE; i++) {
str += "a";
}
} catch (OutOfMemoryError e) {
System.out.println("Error: Memoria insuficiente para la operación.");
}
}
}