💢 تا حالا شده از گوروتینهاتون خطای panic بگیرید و ندونید چطوری جمعش کنید؟!
💠فرض کنید یه فانکشن داریم که اگه عدد زوجی تولید بشه، میخوره به در و دیوار. و 4 تا گوروتین راه میندازیم که این فانکشن رو اجرا کنن: تصویر اول
ولی خب، چون احتمال داره عدد زوج تولید بشه، پانیک میخوریم و برنامه میترکه!
برای مدیریت این خطا، اولین ایده ممکن اینه که یه recover تو گوروتین اصلی بذاریم حالا اگر بیاییم و یه recover توی گوروتین اصلی بیذاریم، ولی بازم پانیک میکنه! چرا؟
چون recover فقط توی همون گوروتینی جواب میده که خطا توش اتفاق افتاده. اینجا خطاها توی گوروتینهای کارگر اتفاق میفته، ولی ما داریم توی گوروتین اصلی recover رو صدا میزنیم. (گوروتین ها مستقل از هم دیگه هستن!)
✅ راهحل: recover رو توی هر گوروتین استفاده کن!
اینجوری هر گوروتین خودش خطای خودش رو مدیریت میکنه و توی گوروتین اصلی متوجه میشیم که همه چیز اوکی بود یا نه.
✅اگه تجربهای دارید یا راه دیگهای به ذهنتون میرسه، حتماً برامون بنویسید!
#گو #گولنگ #Go #golang