WPF - ما هي المعلومات التي يجب التقاطها عند التعامل مع الاستثناءات غير المعلنة؟

StackOverflow https://stackoverflow.com/questions/2511602

  •  22-09-2019
  •  | 
  •  

سؤال

أقوم بتطوير تطبيق في WPF / .NET 3.5 الذي سيكون متاحًا للتنزيل على الإنترنت. أنا - بأفضل ما لدي من قدرتي - كتابة رمز خالي من الأخطاء ، واستخدام الاستثناءات فقط عند الضرورة. ومع ذلك ، فقد أظهرت تجربتي في تطوير البرمجيات أن المستخدمين يتمكنون دائمًا من القيام بشيء غريب مما يؤدي إلى إلقاء استثناء بطريقة لا يمكن أن تتخيلها أبدًا. أرغب في جمع معلومات إضافية عندما يتعين علي التقاط استثناء غير معقول. حتى الآن أستحوذ على ما يلي:

  • حقول الاستثناء القياسية (رسالة ، اكتب ، stacktrace إلخ)
  • إصدار نظام التشغيل
  • .NET الإصدار
  • إصدارات التطبيقات التي تم تحميلها في AppDomain
  • معلومات ترخيص التطبيق
  • أدوات الأوامر القليلة الماضية التي نفذها المستخدم.

أنا متحمس للغاية لأنني لا أرغب في التقاط أي معلومات "شخصية" عن المستخدم لأنني لا أؤمن بهذا النوع من الأشياء. وبالتالي لا تهتم بعنوان اسم المستخدم/المجال/IP (على الرغم من أن معلومات الاستثناء يتم تسليمها إلى خدمة ويب ، فسأحصل بطبيعتها على معلومات IP ولكنها قد تكون من جهاز وكيل).

سؤالي

أي شخص أصدر تطبيقًا في المجال العام (أي على أجهزة الكمبيوتر وليس في بيئة الشركة الخاضعة للرقابة) - هل يمكنك اقتراح أي شيء آخر سيكون مفيدًا في تعقب أسباب الأخطاء؟

على وجه الخصوص ، لا أرغب في جمع المعلومات التي لا يمكنني إدارة/رمز - أي مقدار الذاكرة المتوفرة على الكمبيوتر الشخصي ، أو نوع الطابعات المرفقة - يتم التعامل مع هذه الأشياء بواسطة .NET Framework ولا ينبغي عليّ حقًا (اقرأ: لا تريد ذلك) يجب أن تغير الكود الخاص بي للتعامل مع الاختلافات هناك!

شكرًا!

هل كانت مفيدة؟

المحلول

أعتقد أن هذا يجب أن يكون كافيا. لديك معلومات حول البيئة ، وما الذي كان المستخدم يحاول القيام به ، وأحد أهم أدوات التصحيح: تتبع المكدس.

ما لم تكن تتحدث عن تطبيق لإدارة الطابعة أو شيء من هذا القبيل ، فإن معلومات الطابعة لن تستحق ذلك.

هناك دائمًا فرصة عن بُعد أن تواجه خطأً ينتج عن مجموعة غريبة من الأجهزة ، وتشغيل الخدمات ، والتطبيقات المثبتة ، ومرحلة القمر. لا أعتقد أن الأمر يستحق جمع معلومات حول بيئة المستخدم فقط للتعامل مع تلك الأخطاء النادرة.

فقط تذكر أن لديك طريقة يمكن الاتصال بك لتقارير الأخطاء ، في حالة حاجة المستخدم حقًا إلى حل مشكلته الخاصة ، حتى يتمكن من تقديم المزيد من المعلومات حولها ومساعدتك على إعادة إنتاجها. بناءً على جمهورك المستهدف ، عليك أن تقرر بين شيء مثل تعقب الأخطاء أو عنوان بريد إلكتروني بسيط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top