Comando throw

El comando throw se utiliza para lanzar explícitamente una excepción en PHP. Acepta un parámetro: un objeto de excepción que debe ser una instancia de una clase heredada de la clase base Exception. Cuando se llama a esta función, la ejecución del código actual se detiene inmediatamente, y PHP intenta encontrar el bloque catch correspondiente para manejar la excepción.

Sintaxis

phpthrow new ExceptionClass(message, code, previous);

Ejemplo

Un ejemplo simple de generación de excepciones:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('La edad no puede ser negativa');
  }
?>

Resultado de la ejecución del código:

phpFatal error: Uncaught Exception: La edad no puede ser negativa

Ejemplo

Ejemplo con manejo de excepciones:

php<?php
  try {
    $res = 10 / 0;
    if (is_infinite($res)) {
      throw new Exception('División por cero');
    }
  } catch (Exception $e) {
    echo 'Error: ' . $e->getMessage();
  }
?>

Resultado de la ejecución del código:

php'Error: División por cero'

Ejemplo

Uso de una excepción personalizada:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Mensaje de error personalizado');
  } catch (MyCustomException $e) {
    echo 'Error personalizado capturado: ' . $e->getMessage();
  }
?>

Resultado de la ejecución del código:

php'Error personalizado capturado: Mensaje de error personalizado'

Ver también

  • la construcción try,
    que define un bloque de código para manejar excepciones
  • la construcción catch,
    que captura y maneja excepciones
  • la clase Exception,
    que es la clase base para todas las excepciones