From 23cfec39eedfca17f26adeba2a59db0a4795e433 Mon Sep 17 00:00:00 2001 From: lacatoire Date: Thu, 27 Aug 2026 17:47:15 +0200 Subject: [PATCH] [Sync-En] errorfunc: document the error handler stack --- .../functions/restore-error-handler.xml | 40 +++---- .../errorfunc/functions/set-error-handler.xml | 104 ++++++++++++++---- 2 files changed, 104 insertions(+), 40 deletions(-) diff --git a/reference/errorfunc/functions/restore-error-handler.xml b/reference/errorfunc/functions/restore-error-handler.xml index 009f3c216..7a7405849 100644 --- a/reference/errorfunc/functions/restore-error-handler.xml +++ b/reference/errorfunc/functions/restore-error-handler.xml @@ -1,8 +1,5 @@ - - - - + restore_error_handler @@ -15,13 +12,18 @@ truerestore_error_handler - - Utilizada después de modificar la función de manejo de errores, - gracias a set_error_handler, - restore_error_handler permite reutilizar - la versión anterior de manejo de errores (que puede ser la - función PHP por defecto, o alguna otra función del usuario). - + + Extrae de la pila interna de gestores de errores el gestor que estaba activo + antes de la última llamada a set_error_handler y lo + vuelve a activar, junto con la máscara + error_levels con la que fue registrado. + El gestor restaurado puede ser el gestor interno o una función definida por + el usuario. + + + Llamar a esta función más veces que a set_error_handler + deja activo el gestor de errores interno; no se genera ningún error. + @@ -72,15 +74,13 @@ Valor incorrectamente serializado. &reftitle.seealso; - - - error_reporting - set_error_handler - get_error_handler - restore_exception_handler - trigger_error - - + + error_reporting + set_error_handler + get_error_handler + restore_exception_handler + trigger_error + - - + set_error_handler @@ -15,10 +13,13 @@ callablenullcallback interror_levelsE_ALL - - set_error_handler selecciona la función de usuario - callback para gestionar errores en un script. - + + Define una función de usuario (callback) para + gestionar los errores de un script. + El gestor que estaba activo hasta ese momento se guarda en una pila interna + de gestores de errores, de la cual restore_error_handler + lo vuelve a extraer. + Esta función puede ser utilizada para definir gestores de errores personalizados durante la ejecución, por ejemplo en aplicaciones que necesitan limpiar archivos/datos cuando ocurre un error crítico @@ -65,10 +66,13 @@ callback - - Si &null; es proporcionado, el gestor es reestablecido a su estado por defecto. + + Si se proporciona &null;, no queda activo ningún gestor definido por el + usuario y los errores vuelven al gestor de errores interno. + El gestor que estaba activo hasta ese momento sigue guardado en la pila y + puede recuperarse con restore_error_handler. De lo contrario, el gestor es una función de retorno con la siguiente firma: - + boolhandler @@ -335,24 +339,84 @@ vector d - error fatal MI ERROR [256] log(x) para x <= 0 es indefinido, usted usó: scale = -2.5
Error fatal en la línea 36 en el archivo trigger_error.php, PHP 4.0.2 (Linux)
Abandono...
+]]> + + +
+ + + Llamada al gestor anterior desde el nuevo + + El valor devuelto por set_error_handler es el gestor + que estaba activo hasta ese momento. Llamarlo desde el nuevo gestor + conserva el comportamiento existente y le añade el nuevo. Esto solo + funciona si ese gestor es una función definida por el usuario; se devuelve + &null; cuando el gestor activo era el interno. + + + +]]> + + &example.outputs; + + + + &reftitle.notes; + + + No se debe volver al gestor anterior pasando de nuevo a + set_error_handler el valor que esta devolvió. + Al hacerlo se añade una entrada más a la pila en lugar de retirar una, por + lo que la pila crece sin límite en los bucles y en los procesos de larga + duración, y error_levels se reinicia a + E_ALL, ampliando de forma silenciosa el rango de + errores que recibe el gestor restaurado. + restore_error_handler es la forma prevista de volver + al gestor anterior. + + + + &reftitle.seealso; - - - ErrorException - error_reporting - restore_error_handler - get_error_handler - trigger_error - Constantes de nivel de error - - + + ErrorException + error_reporting + restore_error_handler + get_error_handler + trigger_error + Constantes de nivel de error +