Я создаю пакет для подключения к стороннему API, используя guzzle. Я намерен опубликовать sh как пакет с открытым исходным кодом. Мне интересно, каково общее соглашение с точки зрения предоставления пользователю сообщения об ошибке. Я имею в виду 2 основных варианта.
- Брось исключение (прямо из жрать или поймай и брось свой)
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());
}