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:
- 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ócifalse
. - Obsługa wyjątków: Blok
try...catch
pozwala nam przechwycić wyjątki i odpowiednio je obsłużyć, zapobiegając awarii skryptu. - 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.
$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']);
}
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();
}
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.