معالجة الأخطاء
جزء من دورة Go
كتبت if err != nil أكثر من مرة في هذا المساق دون أن تتوقف لتسأل ما err أصلًا ومن أين تأتي. الدوال تفشل طوال الوقت بطرق عادية متوقَّعة: ملف طلبه المستدعي غير موجود على القرص، أو عدد قدَّمه خارج المدى المسموح، أو قسمة مقامها صفر. والبرنامج يحتاج طريقة يُبلِّغ بها "هذا لم ينجح، وهذا هو السبب" تختلف عن الانهيار الفعلي، حتى يستطيع المستدعي أن ينظر في الإخفاق ويقرر ماذا يفعل به ويواصل العمل.
قابلت الواجهات في الدرس الماضي بوصفها قائمة من تواقيع الدوال التابعة (method) يستطيع أي نوع أن يُحقِّقها بمجرد امتلاكه الدوال الصحيحة، دون أي إعلان يربط بين الاثنين. وerror أبسط مثال ممكن على تلك الفكرة، وهو مبني في اللغة نفسها:
هل تريد تعلّم Go معالجة الأخطاء في بيئة حقيقية؟
انقر بالأسفل لتحصل على جهاز لينكس مع Go جاهز، وتعمل على معالجة الأخطاء بشكل عملي مع مدرّس ذكي يعرف الكود الخاص بك.
ابدأ هذا الدرسمعالجة الأخطاءما الذي ستتعلّمه
- Error interface
- Fmt.Errorf with %w
- Errors.Is
- Errors.As
- Custom error types
- Panic vs error
- Wrapping context into errors
اقرأ هذا الدرس بلغتك
كل دروس هذه الدورة
20 دروس- 1مرحبا، Go25 دقيقة
- 2المتغيرات والأنواع25 دقيقة
- 3التحكم في التدفق: if و for30 دقيقة
- 4الدوال30 دقيقة
- 5الشرائح (slices) والخرائط (maps)35 دقيقة
- 6الهياكل (structs) والمؤشرات (pointers)35 دقيقة
- 7الأساليب (methods) والواجهات (interfaces)35 دقيقة
- 8معالجة الأخطاء35 دقيقة
- 9الوحدات (modules) وهيكل المشروع35 دقيقة
- 10مشروع CLI الصغير التتويجي40 دقيقة
- 11جولة في المكتبة القياسية40 دقيقة
- 12الاختبار والمعايير المرجعية (benchmarks)40 دقيقة
- 13الغوروتينات (goroutines) والقنوات (channels)40 دقيقة
- 14أنماط التزامن45 دقيقة
- 15الأنواع العامة (generics)35 دقيقة
- 16خوادم HTTP45 دقيقة
- 17قواعد البيانات مع database/sql45 دقيقة
- 18الأداء والتحليل التشخيصي40 دقيقة
- 19أنماط التصميم في لغة Go40 دقيقة
- 20النشر والإنتاج45 دقيقة
