2015-07-13 2 views
1

Существует два аналогичных исключения в php: RangeException и UnexpectedValueException. Оба являются подклассами RuntimeException. Проблема в том, что я не вижу большой разницы.PHP: Какое исключение SPL следует делать, если значение переменной неверно?

RangeException
Исключение брошено, чтобы указать ошибки диапазона во время выполнения программы. Обычно это означает, что была арифметическая ошибка, отличная от/переполнения. Это версия времени исполнения DomainException.

UnexpectedValueException
Исключение генерируется, если значение не совпадает с набором значений. Обычно это происходит, когда функция вызывает другую функцию и ожидает, что возвращаемое значение будет иметь определенный тип или значение, не считая ошибки, связанные с арифметикой или буфером.

Я знаю, что это ошибка времени выполнения. Если тип переменной неверен, это просто, я должен использовать UnexpectedValueException.

Что делать, если переменная значение не так ли?

+3

Это зависит от того, как это неправильно. Если переменная должна находиться в пределах заданного диапазона (например, 1-10), и вы получаете '20' или' -10' или '0', тогда вы бросаете «RangeException»; если вы получаете 'ABC' или' NULL', тогда вы бросаете 'UnexpectedValueException' –

ответ

1

Похоже, что лучше всего остановиться с UnexpectedValueException.

  1. Я не нашел никаких соглашений.
  2. неожиданное значение - лучшее описание для программистов.
  3. Если есть специальный код восстановления, пользовательское исключение было бы лучше.
Смежные вопросы