本节我们主要学习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:

test.php

可以看到,10/0没有输出结果,而是输出报错。

总结:本节我们详细讲解了PHP如何抛出、捕获以及处理异常,通过这样的设计,使得PHP开发人员能够更加优雅地管理错误。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)