Event官方事件 为什么无法捕获try catch抛出的异常呢?

qq7467466

问题描述

Event官方事件 为什么无法捕获try catch抛出的异常呢?

try {
    var_dump('事件运行开始').PHP_EOL;
    \Webman\Event\Event::emit('cloud_events_log.send', [
        'where' => [
            'event_id' => '10fbd719-3306-5490-b371-9f0e0b1a8a69'
        ],
        'value' => [
            'sendtime' => time(),
            'status'   => '1'
         ]
     ]);
     var_dump('事件运行结束').PHP_EOL;
} catch (\Exception $e) {
    var_dump('事件抛出异常').PHP_EOL;
} finally {
    var_dump('请求结束').PHP_EOL;
}
//下面的这个事件 只抛出一个异常
public function send($data)
{
    throw new \Exception('数据库写入失败,事件抛出异常');
}

运行结果

string(18) "事件运行开始"
string(18) "事件运行结束"
string(12) "请求结束"

结论

无法捕获数据库写入失败的错误事件

638 1 0
1个回答

Gin
🔝