Aprende Java Facil. Ejercicios capítulo 12.

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.");
        }
    }
}