Menu
Coddy logo textTech

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.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

challenge icon

Desafío

Fácil

Recibirá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


?>
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