W mojej bibliotece T-Regx, kiedy chce się podmienić tylko n
elementów, można użyć metody only(n)
, np only(3)
. Jeśli przekaże się ujemną wartośc, libka rzuca \InvalidArgumentException
, który jest wbudowany w język.
Tylko teraz czytam w dokumentacji że:
The InvalidArgumentException class ¶
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
Introduction ¶
Exception thrown if an argument is not of the expected type.
I teraz taki problem, bo -1
to nie jest niepoprawny typ tej funkcji, tylko ma niepoprawną wartość. PHP sugeruje rzucenie wyjątku LengthException
, OutOfRangeException
, UnderflowException
lub OutOfBoundException
które są rzucane dla poprawnych typów, ale niepoprawnych wartości.
Więc pojawia się pytanie, którego użyć. Z jednej strony InvalidArgumentException
"brzmi" lepiej, czyli technicznie użycie niezgodne z rekomendacją języka.
Jak myślicie?