سؤال

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

هل يجب أن أضع الأساليب في طبقات الأعمال والبيانات في محاولة كتل مثل ذلك

try
{
    DoSomethingThatMightGiveErrors();
}
catch(Exception ex)
{
    logger.log(ex.ToString());
    throw;
}

أو هل يجب أن أترك الأخطاء تطفو على طبقة العرض التقديمي والتعامل مع التسجيل وإبلاغ المستخدم هناك؟

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

المحلول

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

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

نصائح أخرى

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

تفضيلي هو وضعه في طبقة العمل.

  1. إذا قمت بتغيير طبيعة طبقة العرض التقديمي (أي winforms إلى webforms) ، فلن يحتاج رمز التسجيل إلى التكرار.
  2. سيكون من الأسهل بكثير العثور على كل التسجيلات الخاصة بك ، حيث يمكنك دائمًا فحص قائمة الطرق الخاصة بفئة الأعمال وتفقدها/تعديلها لتسجيلها. إذا وضعت تسجيل الدخول في طبقة العرض التقديمي الخاص بك ، فسيتم تناثر مكالمات التسجيل في كل مكان - يمكن أن تحتوي درجة رجال أعمال واحدة على مكالمات تسجيل في العديد من فئات العرض التقديمي المختلفة.

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

هذا سؤال محمّل وكل تطبيق مختلف ، الشيء الأساسي الذي يمكنني قوله هو استخدام جمل Try Catch في طبقات الأعمال/البيانات والتأكد هل لديك هذا في الوثائق؟)

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

آمل أن يساعدك هذا ، مع أطيب التحيات ، توم.

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