هرمية التسلسل

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

الاستثناء هو الفئه الاساسيه للاستثناءات. ترث العديد من الفئات الاستثناء مباشرة من استثناء ، بما في ذلك ApplicationException و SystemException. هذه هي الفئتين الأساسيتين تقريباً لكل استثناءات وقت التشغيل.

معظم الاستثناءات المشتقه مباشرةً من استثناء لا تضيف وظيفه ل استثناء فئه. على سبيل المثال، فئة InvalidCastException تسلسل هرمياً كما يلي:

Object    الاستثناء       SystemException          InvalidCastException

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

استثناءات أخطر — تلك التي تطرح بواسطة وقت التشغيل أو في شروط غير قابله لاعاده الانشاء — تتضمن ExecutionEngineException ، StackOverflowException ، و OutOfMemoryException.

اشتقاق استثناءات التي تحدث في داخل عمليه SystemException وهي إضافية ملحقة من قبل ExternalException. على سبيل المثال، COMExceptionهو طرح أثناء العمليات إمكانية التشغيل المتداخل COM الاستثناء و مشتقة من من ExternalException. Win32ExceptionوSEHExceptionينحدر أيضا منExternalException.

التسلسل الهرمي لاستثناءات وقت التشغيل

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

نوع الاستثناء

نوع أساس

الوصف

المثال

الاستثناء

الكائن

نوع اساس لكل الإستثناءات.

بلا (استخدام فئة مشتقة لهذا الإستثناء).

SystemException

الاستثناء

فئه الاساس لجميع أخطاء وقت التشغيل الذي تم إنشاؤه.

بلا (استخدام فئة مشتقة لهذا الإستثناء).

IndexOutOfRangeException

SystemException

طرح بواسطة وقت التشغيل فقط عندما يكون هناك صفيف مفهرسة بشكل غير صحيح.

فهرسة صفيف خارج النطاق الصالح الخاص بها:

arr[arr.Length+1]

NullReferenceException

SystemException

تطرح بواسطة وقت التشغيل فقط عند الإشارة لكائن فارغ.

object o = null;

o.ToString();

AccessViolationException

SystemException

طرح بواسطة وقت التشغيل فقط عند الوصول إلى الذاكرة غير صحيحه.

يحدث في اثناء علميه و لتعليمات برمجية غير المُدارة أو تعليمات برمجية مداره غير آمنة و مؤشر غير صالح.

InvalidOperationException

SystemException

طرح بواسطة أساليب في حالة غير صالحة.

استدعاء Enumerator.GetNext() بعد إزالة Item من المجموعة الأساسية.

ArgumentException

SystemException

نوع اساس لكل إستثناءات المجادله.

بلا (استخدام فئة مشتقة لهذا الإستثناء).

ArgumentNullException

ArgumentException

طرح بواسطة الطرق لا تسمح وسيطة بأن تكون فارغة.

String s = null;

"Calculate".IndexOf (s);

ArgumentOutOfRangeException

ArgumentException

طرح بواسطة أساليب تحقق من أن الوسيطات في نطاق معطى.

String s = "string";

s.Chars[9];

ExternalException

SystemException

الفئة الأساسية للاستثناءات التي تحدث أو تستهدف في بيئات خارج وقت التشغيل.

بلا (استخدام فئة مشتقة لهذا الإستثناء).

ComException

ExternalException

استثناء تغليف معلومات COM HRESULT.

استخدام في COM interop.

SEHException

ExternalException

استثناء تغليف Win32 بناء الاستثناء لمعالجة المعلومات.

استخدام في interop برمجية غير مُدارة.

راجع أيضًا:

المبادئ

فئة وخصائص الاستثناء

أفضل التدريبات علي معالجة الاستثناءات

موارد أخرى

أساسيات معالجة الاستثناء

معالجة و طرح الاستثناءات