В чем разница между TypeError и InvalidArgumentException в PHP 7?
Когда бросать TypeError, а когда бросать InvalidArgumentException?
Кажется, что ошибка становится больше похожа на исключение в PHP 7.
Какая граница разделяет ошибки и исключения?
TypeError
это означает, что состояние возникает, когда:
InvalidArgumentException
является исключением, если аргумент не относится к ожидаемому типу.
Ошибки не могут быть обработаны во время выполнения, но исключение может быть обработано во время выполнения.
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