Slim

如何在Slim框架中处理异常

小樊
85
2024-07-23 01:11:09
栏目: 编程语言

在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框架会自动调用注册的错误处理程序来处理异常。

0
看了该问题的人还看了