diff --git a/reference/errorfunc/functions/restore-exception-handler.xml b/reference/errorfunc/functions/restore-exception-handler.xml
index 0ccf779c33a0..a2d8251b5fcc 100644
--- a/reference/errorfunc/functions/restore-exception-handler.xml
+++ b/reference/errorfunc/functions/restore-exception-handler.xml
@@ -20,6 +20,27 @@
exception handler (which could be the built-in or a user defined
function).
+
+
+ While an exception handler is running, no exception handler is active: as of
+ PHP 8.3.0 the engine unsets it before invoking it, so that an exception
+ thrown by the handler is not passed back to it.
+
+
+ As of PHP 8.3.5 the engine also pushes the handler it is about to invoke onto
+ the handler stack. A restore_exception_handler call made
+ from within an exception handler therefore pops that entry and re-installs
+ the handler that is currently running; a second call is needed to install the
+ handler that was active before it.
+
+
+ The running handler is re-installed automatically when it returns, but only
+ if no exception handler is active at that point: a handler that calls
+ set_exception_handler or
+ restore_exception_handler is left in charge of the
+ handler stack itself.
+
+
@@ -34,6 +55,40 @@
+
+ &reftitle.changelog;
+
+
+
+
+
+ &Version;
+ &Description;
+
+
+
+
+ 8.3.5
+
+ The exception handler being invoked is now pushed onto the handler
+ stack, so restore_exception_handler called from
+ within an exception handler re-installs the handler that is currently
+ running; restoring the handler that was active before it now requires
+ two calls.
+
+
+
+ 8.3.0
+
+ The active exception handler is now unset while it runs.
+
+
+
+
+
+
+
+
&reftitle.examples;
@@ -70,18 +125,16 @@
-
+
&reftitle.seealso;
-
-
- set_exception_handler
- get_exception_handler
- set_error_handler
- restore_error_handler
- error_reporting
-
-
+
+ set_exception_handler
+ get_exception_handler
+ set_error_handler
+ restore_error_handler
+ error_reporting
+
&reftitle.seealso;
-
-
- get_exception_handler
- restore_exception_handler
- restore_error_handler
- error_reporting
- Exceptions
-
-
+
+ get_exception_handler
+ restore_exception_handler
+ restore_error_handler
+ error_reporting
+ Exceptions
+