En PHP existe una función llamada set_error_handler, la cual me permite establecer una función mía para manejar los errores de PHP (PHP tiene distintos tipos de errores y puedo definir distintos manejadores para cada tipo de error).
Entonces, para que todos los errores de PHP (incluyendo WARNINGS) sean enviados a mi manejador (para arrojar una excepción en su lugar) es implementado con el siguiente código:
set_error_handler("my_warning_handler", E_ALL);
function my_warning_handler($errno, $errstr, $errfile, $errline, $errcontext) {
throw new Exception( $errstr );
}
Seleccionando E_ALL, cualquier tipo de error es enviado a mi función para arrojar una excepción.
Los distintos tipos de errores que tiene PHP son:
- E_ALL
- E_WARNING
- E_ERROR
- E_PARSE
- E_CORE_ERROR
- E_CORE_WARNING
- E_COMPILE_ERROR
- E_COMPILE_WARNING
- E_STRICT
- http://www.php.net/manual/en/function.set-error-handler.php
- http://www.php.net/manual/en/ref.errorfunc.php
Espero que les sirva.