本节我们主要学习PHP中的异常。
在PHP中,异常和错误是两个相关但不同的概念。异常是程序可以主动抛出和捕获的预期错误情况,通常用于处理业务逻辑中的异常状况。而错误(如语法错误、除以零等)通常是意外的运行问题。不过要注意,从PHP 7开始,很多传统的运行时错误(比如除以零)也会以Error异常的形式抛出,这让错误处理更加统一。”
我们可以通过throw来抛出异常,通过try···catch···finally来捕获异常。下面我们设计一个除法函数,来模拟1/0这个异常:
<?php
// 1. 定义一个除法函数
function divide($a, $b) {
if ($b == 0) { // 检查除数是否为0
throw new Exception("不能除以零!"); // 如果是0,抛出异常
}
return $a / $b; // 如果不是0,正常计算并返回
}
// 2. 开始异常处理
try {
// 3. 尝试执行可能出错的代码
echo "计算: 10 ÷ 0<br>"; // 输出:尝试计算: 10 ÷ 0
// 4. 调用divide函数,传入10和0
$result = divide(10, 0); // 这里会抛出异常!
// 5. 这行代码永远不会执行,因为上面抛出了异常
echo "结果: " . $result;
} catch (Exception $e) { // 6. 捕获异常
// 7. 处理异常
echo "捕获到异常: " . $e->getMessage();
}
?>访问test.php:

可以看到,10/0没有输出结果,而是输出报错。
总结:本节我们详细讲解了PHP如何抛出、捕获以及处理异常,通过这样的设计,使得PHP开发人员能够更加优雅地管理错误。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程