PHP определяет два SPL исключения для недопустимых ключей:
OutOfRangeException
: Исключение, возникшее при запросе незаконного индекса. Это означает ошибки, которые должны быть обнаружены во время компиляции.
OutOfBoundsException
: Исключение выбрано, если значение не является допустимым. Это означает ошибки, которые не могут быть обнаружены во время компиляции.
Поскольку PHP не является компилируемым языком, различие между временем компиляции и временем выполнения кажется странным, и поэтому мне трудно понять, какое исключение использовать, когда.
В настоящее время я понимаю, что нужно бросить...
... OutOfRangeException
, если ключ фундаментально и по своей сути искажен, например. если массив передается в качестве ключа.
... OutOfBoundsException
, если ключ вообще хорошо, но не находится в некоторых границах, например. если 100
передается, но 50
- это максимальный ключ.
Правильно ли это понимание?