ما هي أفضل استراتيجية مناولة الاستثناء في فئات تسجيل الأخطاء؟

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

سؤال

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

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

المحلول

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

إذا فشل الكتابة إلى Stderr، فقد حان الوقت للتخلي - إما تجاهله، لإنهاء التطبيق بالكامل.

نصائح أخرى

لماذا لا تستخدم آلية تسجيل موجودة مثل LOG4J / LOG4NET / LOG4PHP / LOG4 *؟ ربما تحتوي هذه الأدوات على تلك التفاصيل التي تم فرزها.

كملاحظة جانبية، إذا قمت بتشغيل التعليمات البرمجية الخاصة بك داخل حاوية (على سبيل المثال: Tomcat) حتى إذا قمت بإلقاء استثناء داخل معالج الاستثمار، فإن الحاوية من شأنها أن تلتقطها وإظهارها. مثل دوغلاس ليدر قال، يمكنك التقاط جميع الاستثناءات داخل المعالج ورميها إلى Syserr.

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

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

يمكن بعد ذلك تنفيذ خدمة التدقيق كآلة حالة يمكن أن تستهلك وتسجيل الرسائل بناء على المعايير المعرفة في تكوينها. يمكن لمعالج الاستثناء العام أيضا استخدام خدمة التدقيق لدعم عرض مركزي للمشاكل التي تحدث في المؤسسة SOA - لدعم المراقبة المستندة إلى الاستثناءات. أي حالة لا ينبغي أن تحدث في المحلول هي أداة إرسال رسالة استثناء إلى معالج استثناء.

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