我在Laravel中使用Redis作为缓存。
但当laravel无法连接到Redis时,我无法捕捉异常(redis已停止,.)。我希望通过JSON捕获此异常以响应客户端。
我该怎么做呢?
发布于 2016-10-31 20:52:01
您可以将render()
类的App\Exceptions\Handler
函数用作:
public function render($request, Exception $exception)
{
if ($exception instanceof SomeRedisException) {
return response()->json('Redis Error',500);
}
return parent::render($request, $exception);
}
发布于 2020-07-10 00:50:14
在发生Redis连接错误时,RedisException
将由phpredis
扩展引发。
在您的控制器或中间件中的某个位置:
try {
// Call Laravel Cache facade when Redis connection is failing
// This will throw exception
Cache::get('cache_key');
} catch (RedisException $exception) {
// In case Redis error - do custom response
Log::error('Redis error', [
'message' => $exception->getMessage(),
'trace' => $exception->getTrace()
]);
return response()->json([
'error' => 'your error message to client'
]);
}
https://stackoverflow.com/questions/40354019
复制