La clase Exception

Ya hemos visto algún ejemplo de la clase **Exception ** que fue incorporada a partir de la versión 5 de PHP. Su constructor adopta dos parámetros opcionales, un mensaje y un código de error.

Además del constructor, esta clase dispone de los siguientes métodos finales:

  • getCode(): Devuelve el código tal cual y como se haya pasado al constructor.

  • getMessage(): Devuelve el mensaje tal y como se haya pasado al constructor.

  • getFile(): Devuelve la ruta completa al archivo de código en el que se ha producido la excepción.

  • getTrace(): Devuelve una matriz con un rastro que indica dónde se ha producido la excepción.

  • getTraceAsString(): Devuelve la mismo información que getTrace, pero con formato de cadena.

Cabe destacar que los métodos **__construct ()** y** __toString ()** pueden ser reemplazados por si necesitamos cambiar el comportamiento por defecto.

Veamos una aproximación de la posible definición de la clase **Exception**:

class Exception
{
    // Mensaje de la excepción
    protected $message = 'Unknown exception';
    // código de la excepción asignado por el usuario
    protected $code = 0;
    // nombre del fichero donde se lanza la excepción
    protected $file;
    // línea del código fuente que produce la excepción
    protected $line;
    function __construct($message = null, $code = 0);
    // mensaje de la excepción
    final function getMessage();
    // código de la excepción
    final function getCode();
    final function getFile(); // código fuente
    final function getLine(); // línea del código fuente
    final function getTrace(); // un array con la traza de la pila de ejecución
    // traza de la pila formateada con un string
    final function getTraceAsString();
    /* Reemplazable */
    function __toString(); // función para imprimir el objeto
}

Esta clase, como vemos en su definición, ha sido pensada para que podamos heredar de ella y crear nuestras propias excepciones. La clase base **Exception ** aporta unos atributos heredables y una serie de métodos no reemplazables que nos proporcionan información y facilitan la depuración de nuestras propias excepciones.

results matching ""

    No results matching ""