Crear una excepción personalizada
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 56 de 68.
Si bien la clase integrada Exception de PHP funciona bien para el manejo general de errores, crear tus propias clases de excepción personalizadas proporciona mensajes de error mucho más específicos y significativos. Las excepciones personalizadas te ayudan a distinguir entre diferentes tipos de problemas en tu código y a manejarlos de manera adecuada.
Para crear una excepción personalizada, extiendes la clase base Exception de PHP usando la palabra clave extends. Esta herencia le otorga a tu excepción personalizada toda la funcionalidad de la excepción estándar, al tiempo que te permite añadir tu propio comportamiento específico o simplemente proporcionar un nombre más descriptivo.
<?php
class InvalidEmailException extends Exception {
// La clase puede estar vacía - hereda todo de Exception
}
// También puedes añadir propiedades o métodos personalizados
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>El poder de las excepciones personalizadas reside en sus nombres descriptivos y en la capacidad de capturar tipos de excepciones específicos. En lugar de capturar una Exception genérica, puedes capturar InvalidEmailException, DatabaseConnectionException o cualquier otra excepción personalizada que crees. Esto hace que el manejo de errores sea más preciso y que tu código sea más fácil de mantener.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Desafío
FácilRecibirás una entrada: una cadena que representa el nombre de una clase de excepción. Esta entrada será una sola palabra que debe usarse como el nombre para tu clase de excepción personalizada (ejemplo: NegativeBalanceException o InvalidUsernameException).
Lee la entrada y crea una clase de excepción personalizada utilizando el nombre proporcionado. Tu clase de excepción personalizada debe extender la clase base Exception de PHP. Después de crear la clase, imprime "Custom exception created: " seguido del nombre de la clase que recibiste como entrada.
Formato de entrada: Una línea que contiene una cadena que representa el nombre de la clase de excepción (ejemplo: InvalidAgeException)
Salida esperada: Custom exception created: seguido del nombre de la clase de excepción
Hoja de referencia
Para crear excepciones personalizadas en PHP, extienda la clase base Exception utilizando la palabra clave extends:
<?php
class InvalidEmailException extends Exception {
// La clase puede estar vacía - hereda todo de Exception
}
// También puede añadir propiedades o métodos personalizados
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>Las excepciones personalizadas proporcionan mensajes de error más específicos y significativos, lo que le permite capturar tipos de excepciones específicos en lugar de objetos Exception genéricos. Esto hace que el manejo de errores sea más preciso y el código más mantenible.
Pruébalo tú mismo
<?php
// Leer el nombre de la clase de excepción
$className = trim(fgets(STDIN));
// TODO: Escribe tu código a continuación para crear la clase de excepción personalizada
// Mostrar el resultado
echo "Custom exception created: " . $className;
?>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
1Funciones avanzadas
Funciones anónimasClosures y 'use'Funciones de flechaFunciones callbackUso de 'call_user_func'Funciones variablesPaso por referenciaFunciones recursivasResumen: Miscelánea de funciones4Arreglos multidimensionales
Crear un arreglo 2DAcceder a elementos de un arreglo 2DModificar elementos de un arreglo 2DIterar con bucles anidadosArreglos asociativos 2DResumen: Ejercicio de cuadrícula simple2Manipulación avanzada de arrays
Agregar con 'array_push'Eliminar con 'array_pop'Agregar con 'array_unshift'Eliminar con 'array_shift'Fusionar arrays indexadosFusionar arrays asociativosExtraer con 'array_slice'Valores con 'in_array'Claves con 'array_search'Resumen: Ejercicio de Playlist5Registro de Calificaciones
Configuración del Proyecto: Estructura de DatosAgregar un Nuevo EstudianteAgregar una Calificación a un EstudianteCalcular el Promedio del EstudianteEncontrar al Mejor EstudianteGenerar un Reporte de Calificaciones8Manejo de errores y excepciones
Entendiendo los errores de PHPEl bloque 'try...catch'El bloque 'finally'Lanzar una excepciónCrear una excepción personalizadaUsar una excepción personalizadaResumen: Validación de entradas3Ordenar Arrays
Ordenar arrays indexados de forma ascendenteOrdenar arrays indexados de forma descendenteOrdenar arrays asociativos por valorOrdenar arrays asociativos por claveOrdenación por orden naturalOrdenación personalizada con 'usort'Resumen: Ordenar tablas de clasificación