---
title: "Výnimky — Attributes for Laravel | Roundly"
description: "Každá výnimka, ktorú balík vyhadzuje, kedy vznikne a aký kontext nesie — všetky dedia z AttributesException."
url: https://roundly-consulting.com/sk/open-source/navody/attributes-for-laravel/vynimky
language: sk
---

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

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

# Výnimky

Všetky výnimky sú v RoundlyConsulting\\Attributes\\Exceptions a dedia z AttributesException, takže jeden catch pokryje všetky:

| Výnimka | Kedy vznikne | Nesie |
| --- | --- | --- |
| `UnknownAttributeException` | Prísny režim je zapnutý a zápis hodnoty či metadát mieri na atribút bez globálnej definície aj bez definície v schéme modelu. | — |
| `InvalidAttributeValueException` | Hodnota nesplní typ alebo pravidlá definície, prípadne sa nedá previesť na svoj typ. | attributeName, messages(), errorBag() |
| `DuplicateAttributeValueException` | Hodnotu jedinečnej definície už má iný vlastník — zistí sa pred zápisom, alebo ju zachytí unikátny index, keď sa dvaja zapisovatelia predbiehajú — alebo restore() obnovuje hodnotu, ktorú medzitým získal iný vlastník. | attributeName, scope |
| `MissingRequiredAttributeException` | validateAttributes() zistí, že povinný atribút chýba. | attributeName |
| `AttributesException` | Základná trieda všetkých štyroch (dedí z RuntimeException). Sama vznikne pri zápise k vlastníkovi, ktorý nemá riadok v databáze — ešte nebol uložený alebo bol natrvalo zmazaný; vlastníka najprv uložte. | — |

Chybná konfigurácia — neplatná hodnota v konfigurácii alebo v definícii — namiesto toho vyhodí RoundlyConsulting\\PackageToolkit\\Exceptions\\InvalidConfigurationException z toolkitu, ktorá nededí z AttributesException. Jej správa uvádza chybný kľúč.

## Zrozumiteľné validačné chyby

InvalidAttributeValueException nesie názov chybného atribútu aj celý bag validátora. messages() pred každé hlásenie doplní názov atribútu:

```php
use RoundlyConsulting\Attributes\Exceptions\AttributesException;
use RoundlyConsulting\Attributes\Facades\Attributes;
use RoundlyConsulting\Attributes\Exceptions\InvalidAttributeValueException;

try {
    Attributes::for($product)->set('rating', 9);
} catch (InvalidAttributeValueException $e) {
    $e->attributeName; // 'rating'
    $e->messages();    // ['rating: The rating field must not be greater than 5.']
    $e->errorBag();    // Illuminate\Support\MessageBag|null
} catch (AttributesException $e) {
    report($e);        // unknown, duplicate or missing-required attribute
}
```

Ak sa hodnota na svoj typ vôbec nedá previesť, výnimka bag validátora nemá — errorBag() vráti null a messages() prázdny zoznam; dôvod vysvetlí getMessage().

## Odpoveď s validačnými chybami

Výnimku znova vyhoďte ako ValidationException z Laravelu a dostanete bežnú odpoveď 422 alebo presmerovanie s chybami:

```php
use Illuminate\Validation\ValidationException;
use RoundlyConsulting\Attributes\Exceptions\InvalidAttributeValueException;
use RoundlyConsulting\Attributes\Facades\Attributes;

try {
    Attributes::for($product)->stage()
        ->set('rating', $request->integer('rating'))
        ->save();
} catch (InvalidAttributeValueException $e) {
    throw ValidationException::withMessages([
        (string) $e->attributeName => $e->errorBag()?->all() ?? [$e->getMessage()],
    ]);
}
```

## 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/attributes-for-laravel.md)
