Wyjątki a integracja z zewnętrznymi systemami

Założenie: Pokażemy, jak obsłużyć wyjątki podczas pobierania danych z zewnętrznego API.

Krok po kroku:

  1. Próba połączenia z API: Używamy funkcji file_get_contents() do pobrania danych z adresu URL. Jeśli wystąpi błąd (np. adres URL jest niepoprawny, serwer jest niedostępny), funkcja zwróci false.
  2. 
    $url = 'https://api.example.com/data';
    $data = file_get_contents($url);
    
    if ($data === false) {
      // Obsługa błędu - rzuć wyjątek
      throw new Exception("Błąd pobierania danych z API: " . error_get_last()['message']);
    }
    				
  3. Obsługa wyjątków: Blok try...catch pozwala nam przechwycić wyjątki i odpowiednio je obsłużyć, zapobiegając awarii skryptu.
  4. 
    try {
      // Kod, który może rzucić wyjątek
      $url = 'https://api.example.com/data';
      $data = file_get_contents($url);
      if ($data === false) {
        throw new Exception("Błąd pobierania danych z API: " . error_get_last()['message']);
      }
      $jsonData = json_decode($data, true);
      echo "Dane z API: " . print_r($jsonData, true);
    
    } catch (Exception $e) {
      // Obsługa wyjątków
      echo "Wystąpił błąd: " . $e->getMessage();
    }
    				
  5. Deklaracja własnego typu wyjątku (opcjonalnie): Możemy stworzyć własny typ wyjątku, aby lepiej zarządzać różnymi rodzajami błędów.
  6. 
    class ApiConnectionException extends Exception {}
    
    try {
      // ... kod pobierający dane ...
      if ($data === false) {
        throw new ApiConnectionException("Błąd połączenia z API.");
      }
      // ... reszta kodu ...
    } catch (ApiConnectionException $e) {
      echo "Błąd połączenia z API: " . $e->getMessage();
    } catch (Exception $e) {
      echo "Wystąpił inny błąd: " . $e->getMessage();
    }
    				

Pamiętaj, że https://api.example.com/data to przykładowy adres URL. Zastąp go adresem właściwego API.

W tym przykładzie pokazano podstawowe techniki obsługi wyjątków w PHP podczas interakcji z zewnętrznymi systemami. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi rodzajami wyjątków i sposobami ich obsługi.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *