search

Home  >  Q&A  >  body text

回调函数 - php 手册里关于callback 类型中有一句话我不是很理解


未捕获的异常,官网没有给 demo,我也没想到有什么异常, 看到的大神能不能帮忙写个简单的例子 谢谢了

大家讲道理大家讲道理2901 days ago255

reply all(1)I'll reply

  • 阿神

    阿神2017-04-10 17:11:55

    很好理解啊。

    比如一个函数中你注册了两个回调,示例代码:

    function somefunc1(){
        //some code...
        //Throw a exception
        throw new \Exception('I am a exception!');
    }
    
    function somefunc2(){
        //some code...
        //Not throw a exception
    }
    

    恰好,在你执行的时候, somefunc1() 的异常被抛出来了,这时候,在你的要使用的回调函数的函数中,你必须:

    try {
        call_user_func('somefunc1');
    } catch (\Exception $e) {
        echo $e->getMessage();
    }
    //以下函数在异常时候会继续执行
    call_user_func('somefunc2');

    如果你没有像上述那样子去捕获异常,代码示例如下:

    call_user_func('somefunc1');
    //当异常抛出的时候,一下代码不会继续执行
    call_user_func('somefunc2');

    以上。

    reply
    0
  • Cancelreply