(Yaf >=1.0.0)
Yaf_Dispatcher::catchException — Active/désactive la capture des exceptions
Lorsque application.dispatcher.throwException est activé (ce qui peut également se faire en appelant Yaf_Dispatcher::throwException()), Yaf lève des exceptions lorsque des erreurs surviennent, au lieu de déclencher des erreurs.
Si la capture des exceptions est de plus activée via cette méthode (ou via
application.dispatcher.catchException),
toutes les exceptions non capturées sont capturées et transmises à
ErrorController::error, si une telle méthode est définie.
flag
Indique si Yaf devrait capturer les exceptions non capturées et les
transmettre à ErrorController::error.
Note:
À partir de Yaf 2.2.0, si ce paramètre n'est pas fourni, l'état courant est retourné à la place.
Retourne l'objet Yaf_Dispatcher lui-même lorsque
flag est fourni, ou un booléen indiquant si la
capture des exceptions est activée lorsqu'il ne l'est pas.
Exemple #1 Exemple avec Yaf_Dispatcher::catchException()
<?php
/* si un ErrorController est défini comme suit */
class ErrorController extends Yaf_Controller_Abstract {
/**
* il est aussi possible d'appeler Yaf_Request_Abstract::getException
* pour récupérer l'exception non capturée.
*/
public function errorAction($exception) {
/* une erreur est survenue */
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;
}
}
}
?>Résultat de l'exemple ci-dessus est similaire à :
/* maintenant, si une erreur survient, en supposant l'accès à un contrôleur inexistant (ou en levant soi-même une exception) : */ 404:Could not find controller script **/application/controllers/No-exists-controller.php