سؤال

في أطر التسجيل مثل log4j وlog4net لديك القدرة على تسجيل مستويات مختلفة من المعلومات.معظم المستويات لها نوايا واضحة (مثل سجل "التصحيح" مقابل سجل "التصحيح")."خطأ").ومع ذلك، الشيء الوحيد الذي كنت دائمًا خجولًا بشأنه هو تصنيف تسجيلي على أنه "قاتل".

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

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

المحلول

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

تتضمن أمثلة الأخطاء الفادحة ما يلي:

  • نفاد مساحة القرص على جهاز التسجيل ويتعين عليك الاستمرار في التسجيل.
  • إجمالي فقدان الاتصال بالشبكة في تطبيق العميل.
  • معلومات التكوين مفقودة في حالة عدم إمكانية استخدام الإعداد الافتراضي.

تشمل الأخطاء غير المميتة ما يلي:

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

نصائح أخرى

وخطأ غير فادح إذا كان هناك شيء مفقود أو تحدث حالة التي التطبيق يمكن ببساطة لن يستمر. الأمثلة الممكنة هي في عداد المفقودين config.file حاجة لها أو عند استثناء "فقاعات حتى 'واشتعلت من قبل معالج استثناء غير معالج

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

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

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

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

ولكن أهم طريقة لتصنيف الأخطاء لمتابعة باستمرار كقاعدة عامة مثل المادة 69 في <لأ href = "http://www.gotw.ca/publications/c++cs.htm" يختلط = "نوفولو noreferrer"> C ++ الترميز معايير :

<اقتباس فقرة>   

و"وضع خطأ العملي، بما يتفق وعقلانية التعامل مع السياسة في التصميم في وقت مبكر، ومن ثم التشبث به."

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