try-finally (مرجع #C)

تكون كتلة finally مفيدة لتنظيف أي موارد تم تخصيصها في كتلة try وتشغيل أي تعليمات برمجية يجب تنفيذها حتى وإن كان هناك استثناء. دائماً يتم تمرير التحكم إلى كتلة finally بغض النظر عن كيفية إنهاء كتلة try.

بينما يتم استخدام catch لمعالجة الاستثناءات التي تحدث في كتلة العبارات, يتم استخدام finally لضمان تنفيذ كتلة عبارات من التعليمات البرمجية بغض النظر عن كيفية إنهاء كتلة try السابقة.

مثال

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

    public class ThrowTest
    {
        static void Main()
        {
            int i = 123;
            string s = "Some string";
            object o = s;

            try
            {
                // Invalid conversion; o contains a string not an int
                i = (int)o;
            }
            finally
            {
                Console.Write("i = {0}", i);
            }
        }
    }

يؤدي المثال أعلاه إلى طرح System.InvalidCastException.

على الرغم من أنه تم اكتشاف استثناء، لا تزال عبارة الإخراج المضمنة في كتلة finally يتم تنفيذها, وهي:

i = 123

للحصول على مزيد من المعلومات حول finally، راجع try-catch-finally.

كما توفر #C عبارة using التي توفر بناء جملة مناسبة تماماً ونفس وظيفة عبارة try-finally.

مواصفات لغة #C

لمزيد من المعلومات، راجع مواصفات لغة #C. مواصفات اللغة هي المصدر النهائي لبناء جملة C# واستخدامها.

راجع أيضًا:

المهام

كيفية: استثناءات يرمي بشكل صريح

المرجع

الكلمات الأساسية لـ #C

The try, catch, and throw Statements

استثناء معالجة البيانات ( مرجع C# )

الإلقاء ( مرجع C# )

try-catch (مرجع #C)

المبادئ

دليل البرمجة لـ #C

موارد أخرى

مرجع C#‎