(Yaf >=1.0.0)
Yaf_Dispatcher::catchException — Activar/desactivar la captura de excepciones
Mientras application.dispatcher.throwException esté activado (lo que también puede habilitarse llamando a Yaf_Dispatcher::throwException()), Yaf lanza una excepción en lugar de emitir un error cuando se producen errores.
Si además se habilita la captura de excepciones mediante este método (o
mediante
application.dispatcher.catchException),
todas las excepciones no capturadas se capturan y se despachan a
ErrorController::error, si se ha definido.
flag
Si Yaf debe capturar las excepciones no detectadas y distribuirlas a
ErrorController::error.
Nota:
Desde Yaf 2.2.0, si no se proporciona este parámetro, se devuelve el estado actual.
Devuelve el propio objeto Yaf_Dispatcher cuando se
indica flag, o un bool que indica si la captura de excepciones está activada cuando no
se indica.
Ejemplo #1 Ejemplo de Yaf_Dispatcher::catchException()
<?php
/* si se define una clase ErrorController como la siguiente */
class ErrorController extends Yaf_Controller_Abstract {
/**
* también se puede llamar a Yaf_Request_Abstract::getException para obtener
* la excepción no capturada.
*/
public function errorAction($exception) {
/* se ha producido un error */
switch ($exception->getCode()) {
case YAF_ERR_NOTFOUND_MODULE:
case YAF_ERR_NOTFOUND_CONTROLLER:
case YAF_ERR_NOTFOUND_ACTION:
case YAF_ERR_NOTFOUND_VIEW:
echo 404, ":", $exception->getMessage();
break;
default :
$message = $exception->getMessage();
echo 0, ":", $exception->getMessage();
break;
}
}
}
?>Resultado del ejemplo anterior es similar a:
/* ahora, si se produce algún error, suponiendo el acceso a un controlador inexistente (o lanzando uno mismo una excepción): */ 404:Could not find controller script **/application/controllers/No-exists-controller.php