Excepciones Personalizadas
Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 43 de 59.
Puedes crear tu propia clase de excepción extendiendo la clase Exception. Esto es útil cuando necesitas manejar tipos específicos de errores en tu aplicación.
Aquí está cómo crear una excepción personalizada:
public class AgeException extends Exception {
public AgeException(String message) {
super(message);
}
}Y aquí está cómo usarlo:
if (age < 0) {
throw new AgeException("Invalid age: " + age);
}Después de ejecutar el código anterior con age = -5, el programa lanza:
AgeException: Invalid age: -5
Desafío
FácilCrea una clase de excepción personalizada llamada EmailException y un método llamado validateEmail que toma un argumento:
- Una String (
email) para validar
El método debe lanzar tu excepción personalizada con estos mensajes:
- Si el email es null: "Email cannot be null"
- Si el email está vacío: "Email cannot be empty"
- Si el email no contiene @: "Email must contain @"
- Si el email no contiene ningún texto antes de @: "Email must have a local part"
- Si la validación pasa: devuelve "Valid email"
Hoja de referencia
Crea excepciones personalizadas extendiendo la clase Exception:
public class AgeException extends Exception {
public AgeException(String message) {
super(message);
}
}Lanza excepciones personalizadas usando la palabra clave throw:
if (age < 0) {
throw new AgeException("Invalid age: " + age);
}Pruébalo tú mismo
import java.util.Scanner;
class EmailException extends Exception {
public EmailException(String message) {
super(message);
}
}
public class Main {
public static String validateEmail(String email) throws EmailException {
// Escribe tu código aquí
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String email = scanner.nextLine();
if (email.equals("null")) {
email = null;
}
try {
System.out.println(validateEmail(email));
} catch (EmailException 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