Я просматривал список предопределенных Исключений в PHP, и я заметил DomainException . Кто-нибудь знает, что означает DomainException? Означает ли это, что проверка достоверности данных не подтверждена?
Здесь есть довольно веселая дискуссия о том, как никто, кажется, не знает, что значит:
http://bugs.php.net/bug.php?id=47097
С конца этой ссылки:
Домен – это домен данных. Это
DomainException
должноDomainException
всякий раз, когда значение не соответствует определенному допустимому домену данных. Примеры:
- 0 не находится в области деления.
- Foo не входит в домен для будних дней.
Первый отличается от вне диапазона и
InvalidParameter
, но вы можете использоватьInvalidParameter
в случае, если он фактически является параметром функции, которая выполняет деление. Если это значение, вычисляемое внутри функции до выполнения деления, а затем предварительная проверка выполняется вместо того, чтобы выполнять деление, тогда это становитсяDomainException
.
Описание RangeException
немного более полезно:
Исключение выбрано для указания ошибок диапазона во время выполнения программы. Обычно это означает, что была арифметическая ошибка, отличная от / переполнения. Это временная версия DomainException .
Я думаю, что он применим и к неарифметике, например, см. Этот комментарий пользователя .
Например, если вы ожидаете, что значение будет в наборе {'jpeg', 'png', 'gif', 'bmp'}
и вы получите что-то вроде 'foo'
, это хороший кандидат на DomainException (логика) / RangeException
(время выполнения). Я почти уверен, что вы могли бы подумать о многих других случаях использования.
Кроме того, я просто нашел эту полезную статью, которая дает более подробные объяснения, чем php.net. Как использовать встроенные классы исключений SPL для лучшей обработки ошибок
Такое исключение должно использоваться для информирования о ошибках домена в математическом смысле.
См. Домен функции .
Например, функция квадратного корня будет определена только для положительных чисел (если вы не используете сложные числа …)