تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الخامس والعشرون - الأخطاء واقتناصها
#2
الكلاس System.Exception :

الكلاس المختص في .net بالتعامل مع الأخطاء التي تحدث في النظام ، في الواقع فإن أي خطأ يرسل للنظام ثم يقوم النظام بارساله إلى ال CLR ، والذي بدوره يخول System.Exception للتعامل مع هذا الخطا ، محتويات هذا الكلاس بالشكل التالي :


كود :
[FONT=Tahoma]public class Exception : ISerializable, _Exception
{
// Public constructors
public Exception(string message, Exception innerException);
public Exception(string message);
public Exception();
// Methods
public virtual Exception GetBaseException();
public virtual void GetObjectData(SerializationInfo info,
StreamingContext context);
// Properties
public virtual IDictionary Data { get; }
public virtual string HelpLink { get; set; }
public System.Exception InnerException { get; }
public virtual string Message { get; }
public virtual string Source { get; set; }
public virtual string StackTrace { get; }
public MethodBase TargetSite { get; }
}[/FONT]


سنحاول التعرف على الخصائص والطرق الاساسية لهذا الكلاس :

Message : رسالة الخطأ الحاصلة .
Source : ملف الاسمبلي الذي قام بعمل throw لهذا الخطأ .
HelpLink : تحتوي هذه الخاصية على رابط يشرح المشكلة ببعض التفصيل ، تستطيع الاستفادة منه كمبرمج وربما يستفيد منه المستخدم المتخصص في ال IT لنظامك .

throw exceptions :

خلال تنفيذك للبرنامج يمكن ان يقوم البرنامج بعمل throw لخطأ ما مثل عدم وجود ملف معين . سنتعلم كيفية قراءة هذا الخطأ والتعامل معه ، لكن تظل هناك حالة أخرى ترغب انت فيها بعمل throw للخطأ ، لنفترض انك تقوم بعمل check تتأكد من عدم وجود الملف ومن ثم تقوم بعرض رسالة خطأ في حالة عدم وجود الملف بالشكل التالي مثلاً :

C#:

كود :
if (!System.IO.File.Exists("c:\\ahmed.txt"))
{
Console.WriteLine("there is no file");
}


vb.net:


كود :
If Not System.IO.File.Exists("c:\ahmed.txt") Then
Console.WriteLine("there is no file")
End If


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

c#:

كود :
if (!System.IO.File.Exists("c:\\ahmed.txt"))
{
throw new Exception("there is no file");
}


vb.net:


كود :
If Not System.IO.File.Exists("c:\ahmed.txt") Then
Throw New Exception("there is no file")
End If


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

نواصل مع الدرس التالي :
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
الدرس الخامس والعشرون - الأخطاء واقتناصها - بواسطة Raggi Tech - 14-10-12, 03:45 PM


التنقل السريع :


يقوم بقرائة الموضوع: