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