swoole怎么處理錯誤

swoole怎么處理錯誤

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

不僅是應用層throw的Exception,底層的一些錯誤也是可以被捕獲的,如functionclass、method不存在

錯誤? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (推薦學習: swoole視頻教程

下面的代碼中,try/catch和throw在不同的協程中,協程內無法捕獲到此異常。

當協程退出時,發現有未捕獲的異常,將引起致命錯誤。

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

正確

在協程內捕獲異常。

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

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享