Menu
Coddy logo textTech

Lanzamiento de Excepciones

Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 42 de 59.

La palabra clave throw en Java permite lanzar explícitamente una excepción. Aquí está la estructura básica:

throw new ExceptionType("Error message");

Los componentes son:

  • throw: Palabra clave para lanzar una excepción
  • new ExceptionType: Crea una nueva excepción (como IllegalArgumentException)
  • "Error message": Describe qué salió mal

Veámoslo en acción:

int age = -5;
if (age < 0) {
    throw new IllegalArgumentException("Age cannot be negative");
}

Después de ejecutar el código anterior, el programa lanza:

IllegalArgumentException: Age cannot be negative

challenge icon

Desafío

Fácil

Crea un método llamado validateAge que toma dos argumentos:

  1. Un entero (age) para validar
  2. Un booleano (strict) que determina las reglas de validación

El método debe lanzar excepciones basadas en estas reglas:

  • Si age es negativo: lanza IllegalArgumentException con mensaje "Age cannot be negative"
  • Si age es superior a 150: lanza IllegalArgumentException con mensaje "Age cannot be greater than 150"
  • Si strict es true y age es 0: lanza IllegalArgumentException con mensaje "Age cannot be zero in strict mode"
  • Si no se lanza ninguna excepción: devuelve age como una cadena

Hoja de referencia

La palabra clave throw le permite lanzar una excepción explícitamente:

throw new ExceptionType("Error message");

Componentes:

  • throw: Palabra clave para lanzar una excepción
  • new ExceptionType: Crea una nueva excepción (como IllegalArgumentException)
  • "Error message": Describe qué salió mal

Ejemplo:

int age = -5;
if (age < 0) {
    throw new IllegalArgumentException("Age cannot be negative");
}

Pruébalo tú mismo

import java.util.Scanner;

public class Main {
    public static String validateAge(int age, boolean strict) {
        // Escribe tu código aquí
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int age = Integer.parseInt(scanner.nextLine());
        boolean strict = Boolean.parseBoolean(scanner.nextLine());
        
        try {
            System.out.println(validateAge(age, strict));
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
    }
}
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