معالجة الاستثناءات في MVC [أهم طريقتين للتعامل مع الاستثناء]

نشرت: 2020-12-29

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

دعنا نفهم ماهية معالجة الاستثناءات بشكل متعمق وكيف تساعدك في تطبيقاتك.

جدول المحتويات

ما هو التعامل مع الاستثناءات؟

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

هناك طريقتان مهمتان يتم من خلالهما معالجة هذه الاستثناءات

  • طريقة الصيد والحظر
  • طريقة معالجة خطأ التطبيق.

ومع ذلك ، فهذه ليست الطرق الوحيدة المستخدمة لهذه العملية.

هنا ، سنناقش الخطوات والتقنيات المختلفة التي يمكنك استخدامها لإدارة الاستثناءات في MVC.

طريقة التعامل مع المحاولة

تعتبر طريقة المصيد والكتل هي الطريقة التقليدية المستخدمة لمعالجة الاستثناءات في التطبيقات القائمة على MVC. سوف تقوم بتسجيل معلومات الخطأ باستخدام هذه الطريقة.

يحاول

{إضافة استثناء؛}

catch (اسم الاستثناء)

{

عرض العودة ("خطأ") ؛

}

أدخل شرط الاستثناء في مدونة try وأضف اسم الاستثناء لكتلة catch. عندما يتم اكتشاف الاستثناء في كتلة catch ، فإنه سيعيد الخطأ الذي يذكره.

يمكن أيضًا استخدام هذا لمعالجة وتسجيل جميع الأخطاء داخل التطبيق.

طريقة OnException

تتيح لك هذه الطريقة تجاوز طريقة OnException داخل فئة وحدة التحكم. يتم استخدام رمز الخطأ 500 لمعالجة كافة الأخطاء المسجلة الناتجة عن معالجة الاستثناءات في MVC .

بشكل أساسي ، يمكنك تسجيل وتحديد عرض الاستثناء بهذه الطريقة بدون حلقة try. لا تحتاج إلى تمكين تهيئة <customErrors> في web.config لبدء استخدام هذه الطريقة.

فئة عامة HomeController: Controller

{

نتيجة جهة الاتصال ()

{

سلسلة msg = خالية ؛

ViewBag.Message = msg.Length ؛

عودة عرض () ؛

}

تجاوز محمي باطل OnException (ExceptionContext filterContext)

{

filterContext.ExceptionHandled = صحيح ،

// سجل الخطأ !!

// إعادة التوجيه إلى العمل

filterContext.Result = RedirectToAction ("خطأ" ، "خطأ داخلي") ؛

// أو إرجاع عرض محدد

filterContext.Result = ViewResult جديد

{

ViewName = "~ / المشاهدات / خطأ / InternalError.cshtml"

} ؛

}

}

ألقِ نظرة على الكود أعلاه ، وستلاحظ أن OnException هي طريقة باطلة ، وأنها تأخذ الكائن ExceptionContext كوسيطة.

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

سمة HandleError

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

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

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

هناك طريقة معينة لإضافة هذه السمة للعمل بناءً على طلبك. يجب عليك إضافة عامل تصفية السمة HandleError داخل أسلوب FilterConfig.RegisterGlobalFilters ().

بالإضافة إلى ذلك ، يجب عليك التأكد من ضبط وضع الأخطاء المخصصة <CustomErrors = "on"> دائمًا على وضع التشغيل داخل web.config. في هذه المرحلة ، يمكنك إضافة السمة إلى الوضع النشط.

فئة عامة HomeController: Controller

{

[خطأ معالجة]

نتيجة جهة الاتصال ()

{

سلسلة msg = خالية ؛

ViewBag.Message = msg.Length ؛

عودة عرض () ؛

}

}

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

هنا يتم تكوين السمة لطريقة إجراء جهة الاتصال (). عندما يتم تجميع العملية ، سترى Error.cshtml معروضًا في وضع العرض.

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

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

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

وراثة من HandleError

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

لا يمكنك العمل إذا كان عليك الاستمرار في الترميز لجميع الاستثناءات التي تحتاج إلى تسجيل.

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

اقرأ أيضًا: الاستثناءات الخاصة بمعالجة أسئلة المقابلة

حدث خطأ التطبيق

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

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

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

إدارة أخطاء HTTP

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

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

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

لتعزيز معرفتك بتطبيقات الأعمال ، واكتساب الكفاءة في لغات البرمجة ، انضم إلى upGrad .

من خلال مجموعة من الدورات ومجموعة من الخيارات الوظيفية ، ستزيد من فرصك المهنية.

تواصل مع خبرائنا أو احجز مكالمة معنا لمعرفة المزيد عن الخيارات المخصصة لك.

قم بالتسجيل في دورات هندسة البرمجيات من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

خاتمة

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

إذا كنت تريد طريقة واحدة للتعامل مع جميع الاستثناءات الممكنة ، فيجب عليك اختيار طريقة Global Application_Error . يتأكد من تسجيل جميع الأخطاء مع <CustomErrors> ويضمن تسجيلها على Web.Config.

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

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

إذا كنت مهتمًا بمعرفة المزيد حول التطوير الكامل ، فقم بإلقاء نظرة على برنامج upGrad & IIIT-B's Executive PG في تطوير البرامج الكامل المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، وأكثر من 9 مشاريع ، و المهام ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.

كن مطورًا للمكدس الكامل

تقدم الآن للحصول على درجة الماجستير في هندسة البرمجيات