异常
在线手册:中文 英文
PHP手册

The InvalidArgumentException class

(PHP 5 >= 5.1.0)

简介

Exception thrown if an argument does not match with the expected value.

类摘要

InvalidArgumentException extends LogicException {
/* 继承的方法 */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

异常
在线手册:中文 英文
PHP手册
PHP手册 - N: The InvalidArgumentException class

用户评论:

Levi Morrison (19-Nov-2011 05:53)

Note that Joey's code showing an example of using InvalidArgumentException uses is_int, but probably should use filter_var($int, FILTER_VALIDATE_INT).

Also, whether you should throw this function or OutOfRangeException when dealing with arrays is a bit unclear.  My personal preference is to throw InvalidArgumentException.

Joey at anti-culture dot net (03-Feb-2011 05:08)

In my opinion this exception is invaluable for validating arguments- for example providing strict typing a la C:

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

$x = tripleInteger(4); //$x == 12
$x = tripleInteger(2.5); //exception will be thrown as 2.5 is a float
$x = tripleInteger('foo'); //exception will be thrown as 'foo' is a string
$x = tripleInteger('4'); //exception will throw as '4' is also a string

?>