Guzzle 6 - przechwytywanie wyjatkow

0

Witam,

Napisalem klase, ktora przy pomocy biblioteki Guzzle laczy sie z API. Wszystko ladnie dziala. Request zwraca dane i jest ok :) Zastanawiam sie nad przechwytywaniu bledow, ktore potencjalnie zwraca Guzzle. W dokumentacji jest conajmniej kilka wyjatkow podzielone na client side, server side czy 400 i 500 HTTP code errors. Czy nie mozna uzyc jednego np Throwable interfejsu, zeby wylapac te wszystkie bledy, ktore zwraca Guzzle? Po co Guzzle wprowadzi az tyle wyjatkow? Jak pisze testy jednostkowe to wcale to nie ulatwia sprawy.

0

Masz wyjątki - problemy które trzeba obsłużyć. Jest ich tyle żebyś mógł je rozróżnić. Nikt ci nie broni zrobić try catch na całości...

0

Dokladnie tak. Co w przypadku jezeli chce doklanie pobrac blad zwracany przez Guzzle, ale nie chce nic z nim robic. Czyli jaki by blad nie wystapil chce po prostu odczytac co zwrocil API czy polaczenie z guzzle i tyle. Nie chce zadnej akcji. Chce wylacznie pobrac blac.

0
poniatowski napisał(a):

Dokladnie tak. Co w przypadku jezeli chce doklanie pobrac blad zwracany przez Guzzle, ale nie chce nic z nim robic. Czyli jaki by blad nie wystapil chce po prostu odczytac co zwrocil API czy polaczenie z guzzle i tyle. Nie chce zadnej akcji. Chce wylacznie pobrac blac.

Eeee...

try {
  // bla bla bla
} catch (\Throwable $e) {
  var_dump($e);
}
0

Wlasnie tak nie dokonca, bo ponoc niektore bledy Guzzle, beda odczytane jako puste przez Throwable. I dlatego trzeba uzyc np use GuzzleHttp\Exception\BadResponseException i nastepnie np: $ex->getResponse()->getBody()->getContents();. Wlasnie problem jest taki, ze nie pamietam dokladnie tego jak zachowa sie Guzzle i Throwable. Nie jestem pewny, czy Throwable obsluzy poprawnie wszsytkie bledy.

0

No to przecież ci napisałem

try {
$ex->getResponse()->getBody()->getContents();
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1