Exceções Precedentes

Desde o Zend Framework 1.10, Zend_Exception implementa às exceções precedentes do PHP 5.3. Simplificando, em um bloco catch(), você pode lançar uma nova exceção que faz referência à exceção original, ajudando a fornecer contexto adicional na depuração. Ao fornecer este suporte no Zend Framework, seu código agora poderá avançar na compatibilidade com o PHP 5.3.

Exceções precedentes são indicadas como o terceiro argumento para um construtor de exceção.

Exemplo 391. Exceções precedentes

try {
    $db->query($sql);
} catch (Zend_Db_Statement_Exception $e) {
    if ($e->getPrevious()) {
        echo '[' . get_class($e)
            . '] possui a exceção precedente de ['
            . get_class($e->getPrevious())
            . ']' . PHP_EOL;
    } else {
        echo '[' . get_class($e)
            . '] não possui uma exceção precedente'
            . PHP_EOL;
    }

    echo $e;
    // exibe todas as exceções começando pela primeira
    // exceção lançada, se disponível.
}