#You can directly use try/catch to handle exceptions in coroutine programming. However, exceptions must be caught within the coroutine and cannot be caught across coroutines.
Not only the Exception thrown by the application layer, but also some errors at the bottom level can also be captured, such as function, class, method does not exist
Error (Recommended learning: SWOOLE Video Tutorial )
The code below, Try/Catch and Throw cannot capture this abnormality in the coroutine.
When the coroutine exits, an uncaught exception is found, which will cause a fatal error.
Fatal error: Uncaught RuntimeException try { Swoole\Coroutine::create(function () { throw new \RuntimeException(__FILE__, __LINE__); }); } catch (\Throwable $e) { echo $e; }
Correct
Catch exceptions within the coroutine.
function test() { throw new \RuntimeException(__FILE__, __LINE__); } Swoole\Coroutine::create(function () { try { test(); } catch (\Throwable $e) { echo $e; } });
The above is the detailed content of How does swoole handle errors?. For more information, please follow other related articles on the PHP Chinese website!