معالجة الأخطاء¶
معالجة الأخطاء جزء حاسم من أي تطبيق Open API موثوق به وسهل الاستخدام. ما لم تلتقط وتعالج الأخطاء المختلفة، قد يواجه مستخدموك واجهة مستخدم معيبة أو قد يُمنعون من تنفيذ بعض الإجراءات الأساسية تمامًا.
بشكل عام، يمكن تنفيذ عمليات معالجة الأخطاء المختلفة اعتمادًا على الطبقة التي يحدث فيها الخطأ.
- في طبقة البيانات والمجال. في بعض الحالات، قد ترسل خلفية cTrader رسالة
ProtoErrorResكرد على أحد طلباتك. بالنسبة للعمليات المتعلقة بالأوامر أو الصفقات أو المراكز، قد تتلقى أيضًا رسالةProtoOAOrderErrorEvent. - في طبقة المجال والتطبيق. قد يقوم المستخدمون بإجراءات لم تأخذها في الاعتبار في التعليمات البرمجية الخاصة بك، مما يؤدي إلى سلوك غير متوقع لتطبيقك.
تختلف آليات معالجة الأخطاء في هذه المستويات وهي موضحة أدناه.
معالجة الأخطاء في طبقة البيانات والمجال ¶
قد تتلقى ProtoErrorRes أو ProtoOAOrderErrorEvent في المواقف التالية (لاحظ أن القائمة ليست شاملة):
- محاولة وضع أمر لرمز يكون السوق مغلقًا له.
- إرسال رسالة غير صحيحة أو غير مدعومة.
- محاولة تعديل أمر قيد التنفيذ.
- إرسال رسالة بعد فقدان اتصالك بواجهة cTrader الخلفية.
تحليل الأخطاء
يحتوي كل من ProtoErrorRes وProtoOAOrderErrorEvent على حقول errorCode وdescription التي تحتوي على معلومات دقيقة حول نوع الخطأ الذي حدث ووصفه. يمكنك رؤية القائمة الكاملة لجميع رموز الأخطاء المدعومة في تعداد ProtoErrorCode.
للتأكد من أن تطبيقك لا يتعطل في مثل هذه الحالات، يمكنك عادةً الاشتراك في ردود الاتصال التي تُفعَّل عند تلقي استجابة خطأ. يعتمد المنطق الدقيق لردود الاتصال هذه وكيفية اشتراكك فيها على العميل الذي تستخدمه لإنشاء اتصال والاستماع إلى تدفق الرسائل.
العمل مع JSON
عند العمل مع JSON، لا يزال بإمكانك إعادة استخدام التعليمات البرمجية من هذا البرنامج التعليمي؛ ومع ذلك، ستحتاج إلى تعديلها قليلاً اعتمادًا على نهجك في التسلسل وإلغاء التسلسل وعميل TCP وWebSocket المفضل لديك.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
عند استخدام مكتبة twisted للتعامل مع العمليات غير المتزامنة، يجب عليك الاشتراك في رد اتصال الخطأ في كل مرة ترسل فيها رسالة جديدة كما هو موضح في المثال أدناه لـ ProtoOAVersionReq.
1 2 3 4 5 6 7 8 | |
معالجة الأخطاء على مستوى المجال والتطبيق ¶
تعتمد طريقة معالجتك للأخطاء على مستويي المجال والتطبيق على لغة البرمجة التي اخترتها، وإطار عمل واجهة المستخدم وحالات الاستخدام التي تنفذها، مما يجعل من الصعب تقديم مقتطفات وحلول برمجية محددة.
ومع ذلك، يمكن أن تكون التوصيات التالية مفيدة بغض النظر عن كيفية اختيارك للتكامل مع Open API من cTrader.
- قم دائمًا بتنفيذ حالة خطأ مخصصة لعناصر واجهة المستخدم الرئيسية. سيمنع هذا تطبيقك من التعطل بالكامل ويسمح بالتشغيل في حالة متدهورة جزئيًا.
- قم بتنفيذ آلية تسجيل آمنة وموثوقة تسجل الأخطاء في موقع مناسب (على سبيل المثال، التخزين المحلي). في حالة حدوث أخطاء متكررة، يجب أن يبسط التسجيل تحديد سببها ومعالجتها.
- قم بإنشاء آلية للمستخدمين لإبلاغك بالأخطاء. يمكن أن يكون هذا بسيطًا مثل تقديم معلومات الاتصال الخاصة بك داخل التطبيق أو معقدًا مثل إضافة خدمة إرسال ملاحظات تلقائية تُفعَّل عند ظهور أخطاء جديدة.
- تأكد من تنظيف أي موارد مستخدمة عند حدوث الأخطاء بشكل صحيح. في حين أن معظم اللغات تقدم خدمات جامع النفايات، قد ترغب في تحديد منطق التخلص من الموارد المخصصة.