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\MultipleResultsFoundBalanced\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キャッチオールとして使用しようとしましたが、これはクライアントの機能が不足していると見なすことができます。私が行ったことは、すべての例外が基本のBalanced例外から継承することを示唆するGithubの問題を提出したことです。

これがお役に立てば幸いです。

于 2012-08-09T20:07:59.883 に答える