السلام عليكم ورحمة الله وبركاته...
مثل ما هو في العنوان إخوتي وشكراً.
السلام عليكم ورحمة الله وبركاته...
مثل ما هو في العنوان إخوتي وشكراً.
تعليمة 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
ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها
كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور
اكرمك الله
سبحانه الله وبحمده سبحانه الله العظيم
if (You Love ArabTeam2000 ) MessageBox.Show("All ArabTeam2000 Love You"); else MessageBox.Show("go to your mama"); شكراً أخي أبو أحمد.