Každá výnimka dedí z abstraktnej RoundlyConsulting\Money\Exceptions\MoneyException (RuntimeException), takže jeden catch pokryje celú rodinu. Texty sú v angličtine pre vývojárov; preložiteľné sú validačné hlášky.
use RoundlyConsulting\Money\Exceptions\CurrencyMismatch;
use RoundlyConsulting\Money\Exceptions\MoneyException;
try {
$total = $cartTotal->add($shippingFee);
} catch (CurrencyMismatch $e) {
// mixing currencies is a bug, not a conversion
} catch (MoneyException $e) {
// one catch for the whole family
}| Výnimka | Kedy nastane |
|---|---|
CurrencyMismatch | Aritmetika alebo porovnanie naprieč menami; zdieľaný stĺpec meny by sa prepísal na inú menu; zľava, strop, doprava či kurz v inej mene. |
UnknownCurrency | Kód, ktorý register nepozná. |
InvalidCurrency | Neplatná definícia Currency; vlastný kód dlhší ako schema.currency_length. |
CurrencyAlreadyRegistered | Duplicitná registrácia bez replace; akékoľvek predefinovanie ISO meny. |
InvalidAmount | Chybný alebo príliš dlhý vstup, neobnoviteľné floaty, nejednoznačné symboly v parseri, zmanipulované dáta. |
RoundingNecessary | Vstup presnejší ako cieľová škála bez zadaného režimu zaokrúhlenia. |
AmountOverflow | Výsledok nad 65 číslic; minorInt() mimo rozsahu int64. |
DivisionByZero | Delenie nulou alebo ratioTo() voči nulovej sume. |
InvalidAllocation | Chybný vstup pre allocate(), split() alebo alokátor. |
EmptyMoneyCollection | sum() bez meny alebo min(), max(), average() prázdneho zoznamu. |
InvalidMoneyValue | Nesprávne použitie castu, resource či Blade; poškodené uložené dáta; prekročená presnosť alebo rozsah databázy. |
InvalidPercentage | Záporné alebo príliš presné percento. |
InvalidRatio | Nulový menovateľ, invertovanie nuly alebo členy nad 80 číslic. |
InvalidDiscount | Neplatné zľavy a rozdelenia zliav. |
InvalidMoneyConfiguration | Chybná konfigurácia, zistená v mieste použitia. |
FormatterUnavailable | formatting.driver = intl bez ext-intl. |
ExchangeRateUnavailable | Žiadny kurz, zastaraný kurz, budúci dátum alebo zlyhaný chain. |
ExchangeRateFetchFailed | Feed ECB sa nepodarilo načítať — HTTP chyba, timeout, chybné alebo príliš veľké telo. |
InvalidExchangeRate | Nekladný kurz, kurz v rámci jednej meny iný ako 1 alebo kurz bez presného desatinného zápisu do 40 znakov. |
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.