PHP的Exception类实现了Throwable接口。ErrorException类继承了Exception类。当您想要捕获和处理否则会被忽略的错误,例如通知或警告时,可以显式地抛出ErrorException。
PHP核心包含以下预定义的错误常量
值 | 常量 | 描述 |
---|---|---|
1 | E_ERROR | 致命的运行时错误。 |
2 | E_WARNING | 运行时警告(非致命错误)。 |
4 | E_PARSE | 编译时解析错误。 |
8 | E_NOTICE | 运行时通知。 |
16 | E_CORE_ERROR | 在PHP的初始启动过程中发生的致命错误。 |
32 | E_CORE_WARNING | 在PHP的初始启动过程中发生的警告(非致命错误)。 |
64 | E_COMPILE_ERROR | 致命的编译时错误。 |
128 | E_COMPILE_WARNING | 编译时警告(非致命错误)。 |
256 | E_USER_ERROR | 用户生成的错误消息。 |
512 | E_USER_WARNING | 用户生成的警告消息。 |
1024 | E_USER_NOTICE | 用户生成的通知消息。 |
2048 | E_STRICT | 如果启用,PHP建议更改您的代码,以确保代码的互操作性和向前兼容性。 |
4096 | E_RECOVERABLE_ERROR | 可捕获的致命错误。 |
8192 | E_DEPRECATED | 运行时通知。 |
16384 | E_USER_DEPRECATED | 用户生成的警告消息。 |
32767 | E_ALL | 所有错误和警告,E_STRICT |
除了从Exception类继承的属性和方法外,ErrorException类还引入了一个属性和一个方法,如下所示−
protected int severity ; final public getSeverity ( void ) : int
异常的严重性由上表中与错误类型相关的整数表示
在下面的脚本中,用户定义的函数errhandler通过通过set_error_handler()函数将strong>设置为错误处理程序。当遇到无法读取文件的致命错误时,它会抛出 ErrorException。
实时演示
<?php function errhandler($severity, $message, $file, $line) { if (!(error_reporting() & $severity)) { echo "no error"; return; } throw new ErrorException("Fatal Error:No such file or directory", 0, E_ERROR); } set_error_handler("errhandler"); /* Trigger exception */ try{ $data=file_get_contents("nofile.php"); echo $data; } catch (ErrorException $e){ echo $e->getMessage(); } ?>
上面的示例显示以下输出
Fatal Error:No such file or directory
以上是PHP ErrorException(PHP错误异常)的详细内容。更多信息请关注PHP中文网其他相关文章!