Я согласен, is_int
было бы ужасно выбросить исключение, но вы могли бы превратить предупреждения и ошибки в исключения, установив обработчик ошибок, который сгенерирует исключение с предупреждением или сообщением об ошибке:
class ErrorOrWarningException extends Exception
{
protected $_Context = null;
public function getContext()
{
return $this->_Context;
}
public function setContext( $value )
{
$this->_Context = $value;
}
public function __construct( $code, $message, $file, $line, $context )
{
parent::__construct( $message, $code );
$this->file = $file;
$this->line = $line;
$this->setContext( $context );
}
}
function error_to_exception( $code, $message, $file, $line, $context )
{
throw new ErrorOrWarningException( $code, $message, $file, $line, $context );
}
set_error_handler( 'error_to_exception' );
Не то чтобы это волшебным образом не изменило не ошибки, чтобы генерировать исключения, как вы объяснили, но я думаю, что это может быть именно то, что вы ищете.