---
title: "Výnimky — Geolocation for Laravel | Roundly"
description: "Všetky typované výnimky balíka a kedy sa vyhadzujú, ako sa preskočia nedostupní poskytovatelia a ako všetko zachytiť na jednom mieste."
url: https://roundly-consulting.com/sk/open-source/navody/geolocation-for-laravel/vynimky
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Geolocation for Laravel](https://roundly-consulting.com/sk/open-source/navody/geolocation-for-laravel.md)

# Výnimky

Chybové odpovede poskytovateľov ani nedostupné API vyhľadávanie neukončia — počítajú sa ako minutie a pipeline pokračuje. Balík vyhadzuje výnimky pri problémoch s konfiguráciou (neznámy poskytovateľ, chýbajúca či poškodená databáza MaxMind), neplatnom vstupe, neúspešnej obnove databázy a voliteľnom strope limitu požiadaviek. Všetky sú v RoundlyConsulting\\Geolocation\\Exceptions:

| Výnimka | Kedy sa vyhodí |
| --- | --- |
| `GeolocationException` | Abstraktný základ (RuntimeException) — zachytením ošetríte všetko nižšie. |
| `UnknownProviderException` | Meno v using(), provider(), withToken() alebo withConfig() nie je v mape providers ani registrované cez extend(), alebo položka v providers nemá meno. |
| `ProviderUnavailableException` | Pribalený HTTP poskytovateľ sa nedostane k svojmu API (timeout, zlyhanie DNS, odmietnuté spojenie) alebo Google odmietne požiadavku ako celok (kľúč bez povoleného API, vyčerpaná kvóta, neplatná požiadavka — správa uvedie stav od Google). Manažér ju zachytí a opýta sa ďalšieho poskytovateľa; uvidíte ju ako error v LocationResolutionFailed alebo DistanceResolutionFailed. Nesie ->provider; správa neobsahuje prístupové údaje. |
| `DatabaseUpdateException` | updateDatabase() alebo geolocation:db:update nemá licenčný kľúč či cestu, sťahovanie zlyhá (chyba HTTP, timeout, nedostupný server) alebo sa archív nedá rozbaliť. Licenčný kľúč sa zo správy odstráni. |
| `InvalidCoordinatesException` | Šírka mimo \[-90, 90\], dĺžka mimo \[-180, 180\] alebo iná hodnota ako Coordinates priradená castu. |
| `DatabaseNotFoundException` | Poskytovateľ databázy MaxMind je zapnutý, ale súbor .mmdb chýba, nedá sa čítať alebo nie je nastavená cesta. |
| `InvalidDatabaseException` | Súbor .mmdb je poškodený — chýbajú metadáta, je skrátený, chybný alebo má nepodporovanú veľkosť záznamu. |
| `RateLimitExceededException` | Limiter poskytovateľa by čakal dlhšie ako max\_wait. Nesie ->provider a ->retryAfterSeconds(). |

Chybná hodnota v konfigurácii — preklep v prepínači, timeout, ktorý nie je celé číslo, neznáme okno limitu — namiesto toho vyhodí InvalidConfigurationException z package-toolkit (RoundlyConsulting\\PackageToolkit\\Exceptions) s názvom kľúča. Nie je to GeolocationException, takže zachytenie GeolocationException nesprávnu konfiguráciu nikdy neskryje.

## Zlyhanie spojenia

Keď poskytovateľ vôbec nie je dostupný — timeout, zlyhanie DNS, odmietnuté spojenie —, HTTP klient Laravelu zopakuje pokus podľa nastavení poskytovateľa, potom poskytovateľ vyhodí ProviderUnavailableException a manažér prejde na ďalšieho poskytovateľa. Ak neodpovie nikto, vyhľadávanie vráti null a LocationResolutionFailed uvedie posledného nedostupného poskytovateľa a jeho chybu. distance() nedostupného poskytovateľa preskočí rovnako a ohlási ho v DistanceResolutionFailed; distanceMatrix() zmení dotknuté bunky na null. Google vyhodí ProviderUnavailableException aj vtedy, keď požiadavku odmietne ako celok — kľúč bez povoleného Geocoding API či Routes API, vyčerpaná kvóta —, a v správe uvedie svoj stav.

API kľúče ani licenčný kľúč MaxMind sa v správach výnimiek nikdy neobjavia: sú odstránené a výnimka prenosu — jej správa cituje celú URL požiadavky — sa nepripája ako previous.

Zachyťte GeolocationException a ošetríte všetko na jednom mieste:

```php
use RoundlyConsulting\Geolocation\Exceptions\GeolocationException;

try {
    $location = Geolocation::locateRequest();
} catch (GeolocationException $e) {
    report($e);   // missing or corrupt .mmdb, rate-limit ceiling, unknown provider...
    $location = null;
}
```

batch() výnimky zachytáva sám po položkách a pre danú IP ich mení na null.

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/geolocation-for-laravel.md)
