预定义异常

目录

参见 SPL 异常处理

简介

Exception是所有异常的基类。

类摘要

Exception

class Exception {

/* 属性 */

protected string $message ;

protected int $code ;

protected string $file ;

protected int $line ;

/* 方法 */

public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )

final public string getMessage ( void )

final public Throwable getPrevious ( void )

final public int getCode ( void )

final public string getFile ( void )

final public int getLine ( void )

final public array getTrace ( void )

final public string getTraceAsString ( void )

public string __toString ( void )

final private void __clone ( void )

}

属性

message
异常消息内容

code
异常代码

file
抛出异常的文件名

line
抛出异常在该文件中的行号

简介

错误异常。

类摘要

ErrorException

class ErrorException extends Exception {

/* 属性 */

protected int $severity ;

/* 方法 */

public __construct ([ string $message = "" [, int $code = 0 [, int $severity = E_ERROR [, string $filename = __FILE__ [, int $lineno = __LINE__ [, Exception $previous = NULL ]]]]]] )

final public int getSeverity ( void )

/* 继承的方法 */

final public string Exception::getMessage ( void )

final public Throwable 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 )

}

属性

severity
异常级别

范例

示例 #1 使用set_error_handler函数将错误信息托管至ErrorException

<?php
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");

/* Trigger exception */
strpos();
?>

以上例程的输出类似于:

Fatal error: Uncaught exception 'ErrorException' with message 'Wrong parameter count for strpos()' in /home/bjori/tmp/ex.php:8
Stack trace:
#0 [internal function]: exception_error_handler(2, 'Wrong parameter...', '/home/bjori/php...', 8, Array)
#1 /home/bjori/php/cleandocs/test.php(8): strpos()
#2 {main}
  thrown in /home/bjori/tmp/ex.php on line 8