第082讲 异常处理

image

<?php

    function addUser($username){
        if($username!="test"){
            throw new Exception("添加失败");
        }
    }

    function updataUser($username){
        if($username!="qb"){
            throw new Exception("更新失败");
        }
    }


    try{
        addUser("test1");
        updataUser("qb1");
    }catch(Exception $e){
        echo "失败";
        error_log($e->getMessage(),3,"d:/mylog.txt");
    }

?>

如上代码:
addUser 和 updataUser 任何一个为false就会抛出异常

如上代码还可以定义一个自定义的异常处理器(也叫顶级异常处理器)
代码如下:

<?php
    function my_exception($e){
        error_log("错误信息".$e->getMessage().$e->getLine()."行号",3,"d:/mylog.txt");
    }
    set_exception_handler("my_exception");//这玩意 跟错误处理器差不多。但是这个是用户自己定义的异常处理函数
    function addUser($username){
        if($username!="test"){
            throw new Exception("添加失败");
        }
    }

    function updataUser($username){
        if($username!="qb"){
            throw new Exception("更新失败");
        }
    }


    try{
        addUser("test");
        updataUser("qb1");
    }catch(Exception $e){
        //echo "失败"; //
        throw $e;
    }

?>

异常释义

Table of Contents释义
Exception::__construct异常构造函数
Exception::getMessage获取异常消息内容
Exception::getPrevious返回异常链中的前一个异常
Exception::getCode获取异常代码
Exception::getFile获取发生异常的程序文件名称
Exception::getLine获取发生异常的代码在文件中的行号
Exception::getTrace获取异常追踪信息
Exception::getTraceAsString获取字符串类型的异常追踪信息
Exception::__toString将异常对象转换为字符串
Exception::__clone异常克隆
自定义异常
<?php
    class MyException1 extends Exception{

    }

    class MyException2 extends Exception{

    }

    function A(){
        throw new MyException1();
    }
    function B(){
        throw new MyException2();
    }
    try{
        A();
        B();
    }catch(MyException1 $e1){
        echo "11111";
    }catch(MyException2 $e2){
        echo "22222";
    }
?>

NOTICE

在php中老版本的函数 有些事没有 try catch 处理机制的

代码:

<?php
    try{
        $i = 8/0;
    }catch(Exception $e){

    }
?>
如上代码:
运行输出:Warning: Division by zero in D:\phpStudy\WWW\exceptionSelf.php on line 3
所以 在php中 有的地方 还只能用错误处理机制因为方法执行本身并没有抛出异常所有何谈捕获一说。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有时有晌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值