阅读量:0
在Slim框架中,可以通过注册一个自定义的错误处理程序来处理异常。可以使用Slim框架提供的add()
方法来注册错误处理程序。以下是一个处理异常的示例代码:
use Slim\Factory\AppFactory; use Slim\Exception\HttpNotFoundException; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; require __DIR__ . '/vendor/autoload.php'; $app = AppFactory::create(); // 添加错误处理程序 $customErrorHandler = function ( Request $request, Response $response, \Throwable $exception ) use ($app) { $payload = ['error' => $exception->getMessage()]; $response->getBody()->write(json_encode($payload)); return $response ->withHeader('Content-Type', 'application/json') ->withStatus(500); }; $app->addErrorMiddleware(true, true, true); $app->add($customErrorHandler); $app->get('/', function (Request $request, Response $response) { throw new \Exception('An error occurred!'); }); $app->run();
在上面的示例中,我们定义了一个自定义的错误处理程序$customErrorHandler
,它会接收请求、响应和异常对象作为参数,并返回一个带有错误消息的JSON响应。然后,我们通过add()
方法将错误处理程序注册到应用中。
当访问根路由/
时,我们抛出一个异常,然后错误处理程序会捕获这个异常并返回相应的错误响应。Slim框架会自动调用注册的错误处理程序来处理异常。