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ónnew 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
Desafío
FácilCrea un método llamado validateAge que toma dos argumentos:
- Un entero (
age) para validar - 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ónnew 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());
}
}
}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 Palabras