PHP 8.6.0 Beta 3 is available for testing

Yaf_Dispatcher::catchException

(Yaf >=1.0.0)

Yaf_Dispatcher::catchExceptionActive/désactive la capture des exceptions

Description

public function Yaf_Dispatcher::catchException(?bool $flag = null): Yaf_Dispatcher|bool

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.

Liste de paramètres

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.

Valeurs de retour

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.

Exemples

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

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top