Ошибка типа против InvalidArgumentException?

В чем разница между TypeError и InvalidArgumentException в PHP 7?
Когда бросать TypeError, а когда бросать InvalidArgumentException?

Кажется, что ошибка становится больше похожа на исключение в PHP 7.
Какая граница разделяет ошибки и исключения?

1

Решение

TypeError это означает, что состояние возникает, когда:

  1. Тип аргумента, передаваемый в функцию, не соответствует соответствующему объявленному типу параметра.
  2. Тип возврата не совпадает с объявленным типом возврата функции.
  3. недопустимое количество аргументов передается во встроенную функцию PHP.

InvalidArgumentException является исключением, если аргумент не относится к ожидаемому типу.

Ошибки не могут быть обработаны во время выполнения, но исключение может быть обработано во время выполнения.

0

Другие решения

InvalidArgumentException: Исключение выдается, если аргумент не относится к ожидаемому типу.
Источник: http://php.net/manual/en/class.invalidargumentexception.php
Пример:

function tripleInteger($int)
{
if(!is_int($int))
throw new InvalidArgumentException('tripleInteger function only accepts integers. Input was: '.$int);
return $int * 3;
}

TypeError Есть три сценария, в которых может быть выдана ошибка TypeError. Первый — это когда тип аргумента, передаваемый в функцию, не соответствует соответствующему объявленному типу параметра. Во-вторых, значение, возвращаемое функцией, не соответствует объявленному типу возвращаемого значения функции. Третий случай, когда недопустимое количество аргументов передается во встроенную функцию PHP (только в строгом режиме).
Источник: http://php.net/manual/en/class.typeerror.php

-1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector