php异常处理笔记

本文介绍PHP中的异常处理机制,包括基本的try...catch结构、自定义异常类的创建及使用,以及如何设置顶级异常处理器来统一处理未被捕获的异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php

//我们使用异常机制来处理
try{
    addUser("shunping");
    updateUser("xxx");
}
//catch捕获   Exception 是异常类(是php定义好的类)
catch(Exception $e){
    echo '失败信息:'.$e->getMessage();
}

function addUser($username){
    if($username=="shunping"){
        //添加ok
    }else{
        throw new Exception("添加失败");
    }
}

function updateUser($name){
    if($name=="xiaoming"){
        //正常修改
    }else{
        throw new Exception("修改失败");
    }
}
?>


用  try catch 可以更有效的控制错误,所以在开发中大量的使用


php默认异常处理器

set_exception_handler(message);


<?php

//定义一个顶级异常处理器
function myException($e){
    echo "我是顶级异常处理器".$e->getMessage()."--".$e->getCode();
}

set_exception_handler("myException");

function a1($val){
    if($val>100){
        throw new Exception("val<100");
    }
}

function a2($val){
    if($val=="hello"){
        throw new Exception("不要输入hello");
    }
}

try {
    a2("hello");
} catch (Exception $e) {
    //捕获.
    //error_log($e->getMessage(),3,"d:/error.txt");
    //可以继续抛出
    throw $e;
}






?>




自定义异常类

class MyException extends Exception{

//代码

}

<?php

//定义了一个异常
class MyException1 extends Exception{

}

class MyException2 extends Exception{

}

function A(){
    throw new MyException1("异常1");
}

function B(){
    throw new MyException2("异常2");
}

function C(){
    try{
        A();
        B();
    }catch(MyException1 $e1){
        $e1->getMessage();
    }catch(MyException2 $e2){
        $e2->getMessage();
    }
}

?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值