Предопределённые исключения

  • Exception
  • ErrorException
  • Error
  • ArgumentCountError
  • ArithmeticError
  • AssertionError
  • DivisionByZeroError
  • CompileError
  • ParseError
  • TypeError

Exception

Exception — это базовый класс для всех исключений в PHP 5 и базовый класс для всех пользовательских исключений в PHP 7.

До PHP 7 Exception не реализовывал интерфейс Throwable.

Exception implements Throwable {
	/* Свойства */
	protected string $message;
	protected int $code;
	protected string $file;
	protected int $line;
	
	/* Методы */
	public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )
	final public getMessage ( void ) : string
	final public getPrevious ( void ) : Throwable
	final public getCode ( void ) : mixed
	final public getFile ( void ) : string
	final public getLine ( void ) : int
	final public getTrace ( void ) : array
	final public getTraceAsString ( void ) : string
	public __toString ( void ) : string
	final private __clone ( void ) : void
}

Свойства:

  • message - Текст исключения
  • code - Код исключения
  • file - Имя файла, в котором было вызвано исключение
  • line - Номер строки, в которой было вызвано исключение

Методы:

  • Exception::__construct — Создать исключение
  • Exception::getMessage — Получает сообщение исключения
  • Exception::getPrevious — Возвращает предыдущее исключение
  • Exception::getCode — Получает код исключения
  • Exception::getFile — Получает файл, в котором возникло исключение
  • Exception::getLine — Получает строку, в которой возникло исключение
  • Exception::getTrace — Получает трассировку стека
  • Exception::getTraceAsString — Получает трассировку стека в виде строки
  • Exception::__toString — Строковое представление исключения
  • Exception::__clone — Клонировать исключение

ErrorException

Исключение в случае ошибки.

ErrorException extends Exception {
	/* Свойства */
	protected int $severity ;
	
	/* Наследуемые свойства */
	protected string $message;
	protected int $code;
	protected string $file;
	protected int $line;
	
	/* Методы */
	public __construct ([ string $message = "" [, int $code = 0 [, int $severity = E_ERROR [, string $filename = __FILE__ [, int $lineno = __LINE__ [, Exception $previous = NULL ]]]]]] )
	final public getSeverity ( void ) : int
	
	/* Наследуемые методы */
	final public Exception::getMessage ( void ) : string
	final public Exception::getPrevious ( void ) : Throwable
	final public Exception::getCode ( void ) : mixed
	final public Exception::getFile ( void ) : string
	final public Exception::getLine ( void ) : int
	final public Exception::getTrace ( void ) : array
	final public Exception::getTraceAsString ( void ) : string
	public Exception::__toString ( void ) : string
	final private Exception::__clone ( void ) : void
}

Error

Error - базовый класс для всех внутренних ошибок PHP.

Error implements Throwable {
	/* Свойства */
	protected string $message;
	protected int $code;
	protected string $file;
	protected int $line;
	
	/* Методы */
	public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )
	final public getMessage ( void ) : string
	final public getPrevious ( void ) : Throwable
	final public getCode ( void ) : mixed
	final public getFile ( void ) : string
	final public getLine ( void ) : int
	final public getTrace ( void ) : array
	final public getTraceAsString ( void ) : string
	public __toString ( void ) : string
	final private __clone ( void ) : void
}

ArgumentCountError

ArgumentCountError выбрасывается когда в пользовательский метод или функцию передано недостаточное количество аргументов.

ArgumentCountError extends TypeError {
	/* Наследуемые свойства */
	protected string $message;
	protected int $code;
	protected string $file;
	protected int $line;
	
	/* Наследуемые методы */
	final public Error::getMessage ( void ) : string
	final public Error::getPrevious ( void ) : Throwable
	final public Error::getCode ( void ) : mixed
	final public Error::getFile ( void ) : string
	final public Error::getLine ( void ) : int
	final public Error::getTrace ( void ) : array
	final public Error::getTraceAsString ( void ) : string
	public Error::__toString ( void ) : string
	final private Error::__clone ( void ) : void
}

ArithmeticError

ArithmeticError выбрасывается, когда возникает ошибка при выполнении математических операций. В PHP 7.0 такие ошибки возможно спровоцировать побитовым смещением на отрицательное значение, или вызовом функции intdiv(), приводящей значение, не входящее в допустимый интервал целых чисел (integer).

ArithmeticError implements Error {
	/* Наследуемые свойства */
	protected string $message;
	protected int $code;
	protected string $file;
	protected int $line;
	
	/* Наследуемые методы */
	final public Error::getMessage ( void ) : string
	final public Error::getPrevious ( void ) : Throwable
	final public Error::getCode ( void ) : mixed
	final public Error::getFile ( void ) : string
	final public Error::getLine ( void ) : int
	final public Error::getTrace ( void ) : array
	final public Error::getTraceAsString ( void ) : string
	public Error::__toString ( void ) : string
	final private Error::__clone ( void ) : void
}

AssertionError

AssertionError выбрасывается, когда утверждение, сделанное с помощью assert(), терпит неудачу.

AssertionError implements Error {
	/* Наследуемые свойства */
	protected string $message;
	protected int $code;
	protected string $file;
	protected int $line;
	
	/* Наследуемые методы */
	final public Error::getMessage ( void ) : string
	final public Error::getPrevious ( void ) : Throwable
	final public Error::getCode ( void ) : mixed
	final public Error::getFile ( void ) : string
	final public Error::getLine ( void ) : int
	final public Error::getTrace ( void ) : array
	final public Error::getTraceAsString ( void ) : string
	public Error::__toString ( void ) : string
	final private Error::__clone ( void ) : void
}

DivisionByZeroError

DivisionByZeroError выбрасывается при попытке поделить число на ноль.

DivisionByZeroError implements Error {
	/* Наследуемые свойства */
	protected string $message;
	protected int $code;
	protected string $file;
	protected int $line;
	
	/* Наследуемые методы */
	final public Error::getMessage ( void ) : string
	final public Error::getPrevious ( void ) : Throwable
	final public Error::getCode ( void ) : mixed
	final public Error::getFile ( void ) : string
	final public Error::getLine ( void ) : int
	final public Error::getTrace ( void ) : array
	final public Error::getTraceAsString ( void ) : string
	public Error::__toString ( void ) : string
	final private Error::__clone ( void ) : void
}

CompileError

Исключение CompileError выбрасывается в некоторых ошибок компиляции, которые ранее выдавали фатальную ошибку.

CompileError extends Error {
	/* Наследуемые свойства */
	protected string $message;
	protected int $code;
	protected string $file;
	protected int $line;
	
	/* Наследуемые методы */
	final public Error::getMessage ( void ) : string
	final public Error::getPrevious ( void ) : Throwable
	final public Error::getCode ( void ) : mixed
	final public Error::getFile ( void ) : string
	final public Error::getLine ( void ) : int
	final public Error::getTrace ( void ) : array
	final public Error::getTraceAsString ( void ) : string
	public Error::__toString ( void ) : string
	final private Error::__clone ( void ) : void
}

ParseError

ParseError выбрасывается, когда возникает ошибка при разборе PHP-кода, например, когда вызывается функция eval().

Начиная с PHP 7.3.0, класс ParseError наследуется от CompileError. Ранее этот класс расширял класс Error.

ParseError extends CompileError {
	/* Наследуемые свойства */
	protected string $message;
	protected int $code;
	protected string $file;
	protected int $line;
	
	/* Наследуемые методы */
	final public Error::getMessage ( void ) : string
	final public Error::getPrevious ( void ) : Throwable
	final public Error::getCode ( void ) : mixed
	final public Error::getFile ( void ) : string
	final public Error::getLine ( void ) : int
	final public Error::getTrace ( void ) : array
	final public Error::getTraceAsString ( void ) : string
	public Error::__toString ( void ) : string
	final private Error::__clone ( void ) : void
}

TypeError

Есть три сценария, в которых будет выброшено исключение TypeError. Первый - тип аргумента, переданный функции, не соответствует типу, объявленному в функции для этого аргумента. Второй - тип возвращенного функцией значения не соответствует типу возврата, объявленному в функции. Третий - встроенной функции PHP было передано неверное количество аргументов (только для режима strict).

TypeError extends Error {
	/* Наследуемые свойства */
	protected string $message;
	protected int $code;
	protected string $file;
	protected int $line;
	
	/* Наследуемые методы */
	final public Error::getMessage ( void ) : string
	final public Error::getPrevious ( void ) : Throwable
	final public Error::getCode ( void ) : mixed
	final public Error::getFile ( void ) : string
	final public Error::getLine ( void ) : int
	final public Error::getTrace ( void ) : array
	final public Error::getTraceAsString ( void ) : string
	public Error::__toString ( void ) : string
	final private Error::__clone ( void ) : void
}