我正在从 Redis 读取一些额外的信息,并且期望的行为是静默跳过连接错误,如果有的话:
try {
$r = new Redis();
$r->connect("127.0.0.1", "6379");
} catch (Error $e) {
;
} catch (Throwable $e) {
;
}
如果 Redis 发生故障,监控系统会向正确的人发出警报以修复它。
不幸的是,上面的代码仍然导致 Yii 失败并生成 HTTP 500:
2018/04/09 12:28:04 [error] [php] Redis::connect(): connect() failed: Connection refused
我做错了什么?
最佳答案
您需要捕获抛出的 Exception
...
try {
$r = new Redis();
$r->connect("127.0.0.1", "6379");
} catch (\Exception $e) {
;
}
我认为如果需要,您可以捕获非常具体的 Predis\Connection\ConnectionException
异常。
关于php - Yii 1.1 与 PHP 5.6 : how to skip Redis connection error silently,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49729801/