diff --git a/HttpServer/Route/Router.php b/HttpServer/Route/Router.php index 4f2d61eb..628d96ca 100644 --- a/HttpServer/Route/Router.php +++ b/HttpServer/Route/Router.php @@ -478,14 +478,20 @@ class Router extends HttpService implements RouterInterface */ public function dispatch(): mixed { - if (!($node = $this->find_path(\request()))) { - return send(self::NOT_FOUND); + try { + if (!($node = $this->find_path(\request()))) { + return send(self::NOT_FOUND); + } + send($response = $node->dispatch(), 200); + if (!$node->hasAfter()) { + return null; + } + return $node->afterDispatch($response); + } catch (\Throwable $exception) { + $this->addError($exception); + + return send($exception->getMessage(), 200); } - send($response = $node->dispatch(), 200); - if (!$node->hasAfter()) { - return null; - } - return $node->afterDispatch($response); }