### Description What was fixed https://github.com/php/php-src/commit/3301d9602a2307007858c299c41795d3d95e3843 https://github.com/php/php-src/issues/13446#issuecomment-1991549384 bc it was broken from 8.3.0-8.3.4 is still broken if the exception handler itself calls exit. https://3v4l.org/HkWfh without exit: https://3v4l.org/FTWQf The following code: ```php <?php declare(strict_types=1); function foo($e) { var_dump( set_exception_handler('foo') ); restore_exception_handler(); echo "---" . PHP_EOL; exit; } set_exception_handler('foo'); register_shutdown_function(function () { var_dump( set_exception_handler(null) ); }); strlen(null); ``` Resulted in this output: ``` NULL --- NULL ``` But I expected this output instead: ``` NULL --- string(3) "foo" ``` This matters, because since PHP 8.3, the exit code of the exit() call in exception handler is used as exit code of PHP @iluuu1994 ### PHP Version ```plain PHP 8.3.0+ ``` ### Operating System _No response_