Predis \\ Connection \\ ConnectionException не перехвачен - PullRequest
0 голосов
/ 14 марта 2019

я пытаюсь поймать

\Predis\Connection\ConnectionException 

в приложении Symfony, но по какой-то причине оно не работает.

Все части кода, в которых задействован кэш, находятся в блоках try catch:

   try {
                $client = new PredisClient(getenv('CACHE_SERVER'));
                $this->cache = new PredisCache($client);
            } catch (\Predis\Connection\ConnectionException | \ErrorException $e) {
                // If no redis cache available, use file cache
                $this->log->addInfo('problems with reading from redis cache, temporarily use file system cache');
            }

и при чтении из кеша

 try {
            if ($result_cache = $this->cache->fetch($cacheid)) {
                return $result_cache;
            }
        } catch (\Predis\Connection\ConnectionException  | \ErrorException $e) {
            // forget the result and go on with database query
            $this->log->addInfo('problems with reading from redis cache, getting the result from the database');
        }

Но иногда получается такая ошибка:

Uncaught PHP Exception Predis\Connection\ConnectionException: "Error while reading line from the server. [tls://<NAME_OF_REDIS_SERVER:6380]" at /var/www/projec1/vendor/predis/predis/src/Connection/AbstractConnection.php line 155 {"exception":"[object] (Predis\\Connection\\ConnectionException(code: 0):

Я задаюсь вопросом об этом Исключении, потому что Predis \ Connection \ ConnectionException ловится в коде, но кажется, что в AbstractConnection.php try / catch из приведенного выше кода.

Если у кого-то есть идея ...

С уважением Томас

...