Desde Zend Framework 1.10, Zend_Exception implementa el
soporte de PHP 5.3 para excepciones previas. Dicho de forma sencilla, cuando
se está en un bloque catch(), se puede lanzar una nueva excepción que haga
referencia a la excepción original, lo que ayuda a proporcionar contexto adicional al depurar.
Al proporcionar este soporte en Zend Framework, su código ahora puede ser compatible hacia
adelante con PHP 5.3.
Las excepciones previas se indican como el tercer argumento del constructor de una excepción.
Ejemplo 32.4. Excepciones previas
try {
$db->query($sql);
} catch (Zend_Db_Statement_Exception $e) {
if ($e->getPrevious()) {
echo '[' . get_class($e)
. '] has the previous exception of ['
. get_class($e->getPrevious())
. ']' . PHP_EOL;
} else {
echo '[' . get_class($e)
. '] does not have a previous exception'
. PHP_EOL;
}
echo $e;
// displays all exceptions starting by the first thrown
// exception if available.
}