Knowledge Base

¿Qué es esto?

PHP: Gestión de excepciones: Capturar todas las excepciones de forma general

17/12/2018 - 27/12/2018 -  Comentarios - PHP Excepciones

Podemos hacer un try catch si sólo queremos controlar errores en un punto concreto:

            try

            {

                 .........

                 .........

                 .........

            }

            catch (Exception $e)

            {

                print "<br/>debug line: " . $e->getLine();

                print "<br/>debug msg: " . $e->getMessage();

            }

Pero en este caso NO controlará todas las excepciones. PHP permite fácilmente capturar todas las excepciones que puedan producirse en nuestras aplicaciones, independientemente de que esa excepción se produzca fuera de un bloque try catch.

Para ello habría que poner en el fichero inicial de la aplicación algo como esto:

    set_exception_handler('exceptionHandler');

    function exceptionHandler($e)

    {

         // Aquí mostraríamos el error por pantalla o lo que fuera. Es posible llamar a otra función por lo que podríamos hacer:

        $general = new \application\General();

        $exception_msg = $general->catchException($e); // Dónde en catchException tendríamos procesaríamos la excepción

        print "<br/>" . $exception_msg;

    }