Všetky výnimky dedia od abstraktnej RoundlyConsulting\Metrics\Exceptions\MetricsException (ktorá je sama Exception), takže jeden catch pokryje celú rodinu:
| Výnimka | Kedy sa vyhodí |
|---|---|
IncompleteMetricException | Inline builder sa vyhodnotí pred zavolaním agregácie (count, sum, average, max, min). |
InvalidConfigurationException | Hodnota metrics.* v konfigurácii existuje, no nedá sa použiť — napr. METRICS_CACHE_TTL, ktoré nie je celým počtom sekúnd od 1 do 31536000, METRICS_CACHE_ENABLED, ktoré nie je zápisom booleanu, neznáme default_range či default_unit, precision, ktoré nie je celé číslo, timezone, cache.store, cache.prefix či partition.other_label, ktoré nie je reťazcom, alebo položka trend_drivers, ktorá nie je triedou QueryExpression. |
InvalidRangeException | Reťazec obdobia sa nedá previesť na Period alebo sa ALL použije tam, kde treba ohraničené okno (napr. compareTo(Period::All)). |
InvalidUnitException | Výraz pre trend dostane jednotku, ktorú nepodporuje. |
MissingTrendQueryExpressionException | Trend beží na databázovom driveri bez zaregistrovaného QueryExpression. |
UnexpectedResultException | calculate() typovanej metriky vrátil iný typ výsledku, než sľubuje jej základ (napr. Value vráti TrendResult). |
UnknownMetricException | Metrics::get(), Metrics::forget() alebo dashboard žiada nezaregistrovaný kľúč. |
use RoundlyConsulting\Metrics\Exceptions\MetricsException;
use RoundlyConsulting\Metrics\Exceptions\UnknownMetricException;
use RoundlyConsulting\Metrics\Facades\Metrics;
try {
return Metrics::get($key)->toArray();
} catch (UnknownMetricException $e) {
abort(404, $e->getMessage());
} catch (MetricsException $e) {
report($e);
abort(500);
}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.