try trigger_error set_error_handler mandar generate fatal error catch capturar _error_handler php error-handling fatal-error

set_error_handler - trigger_error() php



set_error_handler() no funciona para el error FATAL (2)

Solo hay formas de solucionarlo de forma hackosa, por ejemplo, usando register_shutdown_function() y luego verificando si se produjo un error dentro de esa función.

PHP tiene log_errors por una razón, puede hacer que PHP registre cualquier error en syslog o en un archivo de registro sin una sola línea de código personalizado. Así que usar set_error_handler() para este propósito no es necesario en absoluto y debe evitarse a menos que necesite, por ejemplo, un stacktrace.

Tengo un controlador de error personalizado simple que escribe en un archivo de registro de errores algunas informaciones de depuración útiles.

funciona para todo, pero no se activa para el error FATAL.

¿Alguna forma de resolver esto?

Actualmente para eludir esta circunstancia, también he registrado una función de apagado que comprueba error_get_last()


No, eso es solo una limitación de set_error_handler() ; no maneja todos los errores.

Los siguientes tipos de error no pueden manejarse con una función definida por el usuario: E_ERROR , E_PARSE , E_CORE_ERROR , E_CORE_WARNING , E_COMPILE_ERROR , E_COMPILE_WARNING y la mayor parte de E_STRICT en el archivo donde se llama a set_error_handler() .

El register_shutdown_function() y error_get_last() es una solución decente.