PHP ErrorException
phpserver side programmingprogramming更新于 2025/7/18 13:07:17
简介
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 severe; final public getSeverity ( void ) : int
异常的严重程度用上表中与错误类型关联的整数表示
ErrorException 示例
在以下脚本中,用户定义的函数 errhandler 使用 set_error_handler() 函数设置为错误处理程序。当遇到无法读取文件等致命错误时,它会抛出 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

