Пытаюсь сделать выброс из register_shutdown_function — не работает.
То есть исключение внутри register_shutdown_function не перехватывается в set_exception_handler.
PHP exception handler and shutdown function — Stack Overflow
Первый ответ глянь.
@don.bidon при чём тут ответ гадалки, меня интересует ответ уровня: если все функции отработали и последняя shutdown, то распространяется ли на неё действие функций, если она по ходу последняя, то есть всё что можно отработало и попадёт ли шатдаун в отлов выброса, если шатдаун последнее что может быть, видит ли её Throwable?
или мы в 2023 году так и будем ловить несуществующий трейт шатдаунами
еблысь
PHP:
class Debugger { private $container; public function __construct(Container $container) { $this->container = $container; } public function __invoke(Request $request, Response $response) { $this->container->get($this->container->get(‘debugger’)[‘handler’]), $request, $response, [ ‘head’ => ‘error’, ‘code’ => $code === 404 ? 404 : 500, ‘text’ => $text, ‘file’ => $file, ‘line’ => $line ] ); }); set_exception_handler(function (Throwable $throwable) use ($request, $response) { $this->container->get($this->container->get(‘debugger’)[‘handler’]), $request, $response, [ ‘head’ => ‘exception’, ‘code’ => $throwable->getCode() === 404 ? 404 : 500, ‘text’ => $throwable->getMessage(), ‘file’ => $throwable->getFile(), ‘line’ => $throwable->getLine() ] ); }); $this->container->get($this->container->get(‘debugger’)[‘handler’]), $request, $response, [ ‘head’ => ‘shutdown’, ‘code’ => $error[‘type’] === 404 ? 404 : 500, ‘text’ => $error[‘message’], ‘file’ => $error[‘file’], ‘line’ => $error[‘line’] ] ); } }); } }