swoole錯(cuò)誤處理的方法

swoole錯(cuò)誤處理的方法

在協(xié)程編程中可直接使用try/catch處理異常。但必須在協(xié)程內(nèi)捕獲,不得跨協(xié)程捕獲異常。

不僅是應(yīng)用層throw的Exception,底層的一些錯(cuò)誤也是可以被捕獲的,如functionclass、method不存在

錯(cuò)誤

下面的代碼中,try/catch和throw在不同的協(xié)程中,協(xié)程內(nèi)無(wú)法捕獲到此異常。當(dāng)協(xié)程退出時(shí),發(fā)現(xiàn)有未捕獲的異常,將引起致命錯(cuò)誤。

Fatal?error:?Uncaught?RuntimeException
try?{ ????swooleCoroutine::create(function?()?{ ????????throw?new?RuntimeException(__FILE__,?__LINE__); ????}); } catch?(Throwable?$e)?{ ????echo?$e; }

正確

在協(xié)程內(nèi)捕獲異常。

function?test()?{ ????throw?new?RuntimeException(__FILE__,?__LINE__); }  SwooleCoroutine::create(function?()?{ ????try?{ ????????test(); ????} ????catch?(Throwable?$e)?{ ????????echo?$e; ????} });

推薦學(xué)習(xí):?swoole視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊11 分享