Жрать - как мне обрабатывать исключения для моего пакета с открытым исходным кодом? - PullRequest
0 голосов
/ 19 февраля 2020

Я создаю пакет для подключения к стороннему API, используя guzzle. Я намерен опубликовать sh как пакет с открытым исходным кодом. Мне интересно, каково общее соглашение с точки зрения предоставления пользователю сообщения об ошибке. Я имею в виду 2 основных варианта.

  1. Брось исключение (прямо из жрать или поймай и брось свой)
try {
    $response = $this->client->get($this->server.$endpoint, [
        'form_params' => $parameters,
        'headers' => [
            'Content-Type' => 'application/x-www-form-urlencoded',
            'Authorization' => $this->bearer
        ]
    ]);

    return json_decode((string) $response->getBody(), true);

} catch (ClientException $e) {
    /**
     * Do some work here to process any known exceptions
     */

    throw $e;
}
Перехват всех исключений и преобразование их в массив. т.е. вернуть сообщение об исключении для пользователя для обработки, как они хотели бы.
try {
    $response = $this->client->get($this->server.$endpoint, [
        'form_params' => $parameters,
        'headers' => [
            'Content-Type' => 'application/x-www-form-urlencoded',
            'Authorization' => $this->bearer
        ]
    ]);

    return json_decode((string) $response->getBody(), true);

} catch (ClientException $e) {
    throw new \Exception((string) $e->getResponse()->getBody(), $e->getResponse()->getStatusCode());
}
...