PHP8编译swoole出错,swoole错误处理的方法

05e636385e013e4e2d92c253d0e17eb3.png

在协程编程中可直接使用try/catch处理异常。但必须在协程内捕获,不得跨协程捕获异常。

不仅是应用层throw的Exception,底层的一些错误也是可以被捕获的,如function、class、method不存在

错误

下面的代码中,try/catch和throw在不同的协程中,协程内无法捕获到此异常。当协程退出时,发现有未捕获的异常,将引起致命错误。Fatal error: Uncaught RuntimeExceptiontry {

Swoole\Coroutine::create(function () {

throw new \RuntimeException(__FILE__, __LINE__);

});

}

catch (\Throwable $e) {

echo $e;

}

正确

在协程内捕获异常。function test() {

throw new \RuntimeException(__FILE__, __LINE__);

}

Swoole\Coroutine::create(function () {

try {

test();

}

catch (\Throwable $e) {

echo $e;

}

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值