El bloque 'try...catch'
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 53 de 68.
Cuando tu código PHP encuentra problemas que podrían causar que falle, necesitas una forma de manejar estas situaciones con elegancia. El bloque try...catch proporciona un enfoque estructurado para tratar con excepciones: objetos de error especiales que representan problemas graves en tu código.
El bloque try contiene código que podría fallar o lanzar una excepción. Si ocurre una excepción dentro de este bloque, PHP detiene inmediatamente la ejecución del código restante en el bloque try y salta al bloque catch correspondiente. El bloque catch maneja la excepción, permitiendo que su script continúe ejecutándose en lugar de fallar.
<?php
try {
// Código que podría lanzar una excepción
$result = riskyFunction();
echo "Success!";
} catch (Exception $e) {
// Manejar la excepción
echo "An error occurred: " . $e->getMessage();
}
?>El bloque catch recibe un objeto Exception que contiene información sobre lo que salió mal. Puedes acceder al mensaje de error utilizando el método getMessage(). Este enfoque evita que todo tu script se detenga cuando algo sale mal, dándote control sobre cómo se manejan los errores y qué ven tus usuarios.
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: un número que representa un valor de edad. La entrada podría ser un número negativo, lo cual sería inválido para una edad.
Lee la entrada, conviértela a un entero y crea un bloque try...catch. Dentro del bloque try, verifica si la edad es negativa. Si es negativa, lanza una nueva Exception con el mensaje "Age cannot be negative". Si la edad es válida (cero o positiva), imprime "Valid age: " seguido del valor de la edad.
En el bloque catch, maneja la excepción imprimiendo "Error: " seguido del mensaje de la excepción utilizando el método getMessage().
Formato de entrada: Una línea que contiene un entero (ejemplo: 25 o -5)
Salida esperada:
- Si la edad es válida:
Valid age:seguido del valor de la edad - Si la edad es negativa:
Error: Age cannot be negative
Hoja de referencia
El bloque try...catch maneja excepciones en PHP, evitando que los scripts fallen cuando ocurren errores.
Sintaxis básica:
<?php
try {
// Código que podría lanzar una excepción
$result = riskyFunction();
echo "Success!";
} catch (Exception $e) {
// Manejar la excepción
echo "An error occurred: " . $e->getMessage();
}
?>El bloque try contiene código potencialmente problemático. Si ocurre una excepción, PHP salta al bloque catch, el cual recibe un objeto Exception. Utilice getMessage() para acceder al mensaje de error.
Puede lanzar excepciones manualmente usando:
throw new Exception("Custom error message");Pruébalo tú mismo
<?php
// Leer entrada
$age = intval(fgets(STDIN));
// TODO: Escribe tu código a continuación
// Crea un bloque try...catch para validar la edad
?>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