首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Predis -捕获连接错误

Predis -捕获连接错误
EN

Stack Overflow用户
提问于 2015-02-08 21:32:18
回答 1查看 4.1K关注 0票数 3

嗨,我有以下内容:

代码语言:javascript
复制
// Named array of connection parameters:
    $redis = new Predis\Client([
        'scheme' => 'tcp',
        'host'   => $host,
        'port'   => $port,
        'password'   => $auth,
    ]);

    try {
        // explicitly call Predis\Client::connect()
        $redis->connect();
    }
    catch (Exception $e) {
        return Redirect::to('profile')
                ->with('result', '<div class="col-lg-12"><div class="alert alert-danger alert-border-left alert-gradient alert-dismissable">
                <button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
                <i class="fa fa-check pr10"></i>
                <strong>Error - '.$e.'</strong> Unable to connect to redis server, please double check your database detals.</div></div>');
    }

但是,这并不能捕获NOAUTH之类的错误。

有人能给我指个方向吗?

EN

回答 1

Stack Overflow用户

发布于 2015-03-12 03:24:56

我广泛地阅读了这个问题,虽然我的配置是不同的,因为它使用了多个服务器,并且我试图解决的问题是一个失败的服务器,但这似乎已经为我解决了:

代码语言:javascript
复制
 try {
      $client = new Predis\Client($params);
      $client->connect();
 } catch(Predis\Connection\ConnectionException $e) {
      echo $e->getMessage();
 }

我尝试了许多变体,这似乎阻止了应用程序的所有尖叫。在我的示例中,我传入了一个服务器数组,并尝试ping它们并删除出现故障的服务器。这看起来有点过头了,但是如果不这样做,我怎么知道服务器是否关闭了呢?

此外,如果您不尝试连接,那么它将在其他地方失败,也就是说,连接是惰性的,并且将在实际需要时被调用--对我来说,这总是导致连接错误。在使用它之前我自己调用它,这样我就可以捕捉到异常。然后,我必须找出Exception不起作用的原因,并必须将其切换到Predis\Connection\ConnectionException。这比预期的要难得多。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28394489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档