企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 异常处理机制 异常: 业务逻辑上出现不合预期、与正常流程不同的状况,使用异常改变脚本正常流程。 PHP 异常处理机制借鉴了 java 等语言,但是 PHP 的异常处理机制是不健全的。 PHP 无法自动捕获异常的(绝大多数),只有主动抛出异常并捕捉。 异常处理语法格式 ``` try { } catch (Exception $e) { } ``` 异常处理规则: * 需要进行异常处理的代码放入 try 代码块内,以便捕获潜在的异常。 * 每个 try 或者 throw 代码块至少拥有一个 catch 代码。 * 使用多个 catch 代码块可以捕获不同种类的异常。 * 可以在 try 代码块中再次抛出异常。 * 如果抛出了异常,就必须捕获它,或者使用顶级异常处理机制。 ``` <?php try { $file = fopen("tmp.txt", "r"); if(!$file) { throw new Exception("文件打开失败"); } } catch (Exception $e) { echo $e->getMessage(); } ?> ``` > **Note:** 当 throw 一个异常以后,后面的语句不会继续执行,PHP 会尝试找到匹配的 catch 处理块。 ### 设置顶层异常处理器 如果异常没有被捕获,PHP 会发出一个致命错误,除非定义了 `set_exception_handler()` 顶级异常处理函数。 ``` <?php function my_exception($e) { echo "Message: ". $e->getMessage() . PHP_EOL; echo "Line: " . $e->getline() . PHP_EOL; } set_exception_handler("my_exception"); throw new Exception("Uncaught Exception occurred"); ?> ```