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.