Yaf_Dispatcher::catchException

(Yaf >=1.0.0)

Yaf_Dispatcher::catchExceptionActivar/desactivar la captura de excepciones

Descripción

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

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.

Parámetros

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.

Valores devueltos

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.

Ejemplos

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

Véase también

add a note

User Contributed Notes

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