2

我正在尝试在市场上查询与电子邮件地址匹配的帐户,当它找不到结果时,尽管我的 try/catch 阻止了它,但它会引发未捕获的异常。

try {
    $vendor = $this->marketplace ->accounts ->query()
               ->filter(Balanced\Account::$f->email_address->eq($this->vendor['email']))
               ->one();
    $this->balanced_vendor = $vendor; 
    return true;
} catch (Balanced\Exceptions\HTTPError $e) {
    $this->notify('no-vendor', $e);
}

我可能做错了什么?

谢谢 !

4

1 回答 1

1

看起来该类从其方法中Balanced\Core\Query抛出两者Balanced\Exceptions\MultipleResultsFound,而不是.Balanced\Exceptions\NoResultFoundone()Balanced\Exceptions\HTTPError

要解决您当前的问题,您应该将catch指令更改为:

} catch (Balanced\Exceptions\MultipleResultsFound $e) {
    // handle multiple results..
} catch (Balanced\Exceptions\NoResultsFound $e) {
    $this->notify('no-vendor', $e);
}

但是从外观上看,您试图将其Balanced\Exceptions\HTTPError用作包罗万象的功能,这可以被认为是客户端缺少的功能。我所做的是,我为您提交了一个Github 问题,建议所有异常都继承自基本平衡异常。

我希望这有帮助。

于 2012-08-09T20:07:59.883 回答