الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ما وظيفة throw و finally في كود الـ try & catch؟

بدأه kiooo96 في 20 أغسطس 2012 · 3 رد · 1,173 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته...

مثل ما هو في العنوان إخوتي وشكراً.

#2

تعليمة try هي لتجنب الأخطاء الغير متوقعة

وهي تشكل سكوب Scope لوحدها كما يتبعها قسم الكاتش catch ثم قسم الفاينلي finally

يمكن استعمال تراي لوحدها ويمكن استعمالها مع كاتش أو فاينلي أو الاثنين معا

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

وضمنه تقوم بتنفيذ تعليمات لمعالجة الخطأ

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

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

أما تعليمة ثرو throw فهي لاصدار خطأ مسبق التعريف أو معرف من قبل المبرمج

كمثال : عندما يكون لديك عملية قسمة على متحول تضع التعليمة ضمن قسم تراي

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

كما يمكن استخدام أكثر من بلوك كاتش لتعليمة تراي واحدة على شرط أن تحتوي متحول تمرير ذو فئة استثناء مختلفة

كمثال :

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

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

لمزيد من التوضيح والأمثلة :

http://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1&l=EN-US&k=k(try_CSharpKeyword);k(TargetFrameworkMoniker-Silverlight,Version%3Dv5.0);k(DevLang-csharp)&rd=true

تم تعديل هذه المشاركة بواسطة أبو أحمد المبرمج في 20 أغسطس 2012 في 04:53

2

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#3

اكرمك الله

#4

شكراً أخي أبو أحمد.

مواضيع مشابهة