广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买
在协程编程中可直接使用try/catch处理异常。但必须在协程内捕获,不得跨协程捕获异常。
不仅是应用层throw的Exception,底层的一些错误也是可以被捕获的,如function、class、method不存在
错误
下面的代码中,try/catch和throw在不同的协程中,协程内无法捕获到此异常。当协程退出时,发现有未捕获的异常,将引起致命错误。
Fatal error: Uncaught RuntimeException登录后复制
try { 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; }});登录后复制
推荐学习: swoole视频教程
以上就是swoole错误处理的方法的详细内容,更多请关注9543建站博客其它相关文章!
发表评论