fromName() a fromLabel() vyhodia RoundlyConsulting\Enums\Exceptions\EnumException, keď žiadny prípad nezodpovedá. Výnimka rozširuje InvalidArgumentException z PHP, takže ju zachytíte oboma spôsobmi:
use RoundlyConsulting\Enums\Exceptions\EnumException;
try {
NewsCategory::fromName('Breaking');
} catch (EnumException $e) {
$e->getMessage();
// "No case named [Breaking] exists on enum [App\Enums\NewsCategory]."
}
try {
NewsCategory::fromLabel('Breaking News');
} catch (InvalidArgumentException $e) {
// EnumException extends InvalidArgumentException, so this catches it too
}| Pomenovaný konštruktor | Vyhodí ju | Správa |
|---|---|---|
EnumException::nameNotFound(string $enum, string $name) | fromName() | No case named [{name}] exists on enum [{enum}]. |
EnumException::labelNotFound(string $enum, string $label) | fromLabel() | No case with label [{label}] exists on enum [{enum}]. |
EnumException zámerne nie je final, takže ju môžete rozšíriť. Pri vstupe od používateľov uprednostnite varianty tryFrom* spolu s validáciou a from* si nechajte pre dôveryhodné dáta, kde je nenájdenie chybou, o ktorej sa chcete dozvedieť.
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 kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
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.