تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معلومة - الاستثناءات ( Exceptions )
#1
كاتب الموضوع : BADRMEDIA

الدرس : تعليم كيفية استخدم الاستثناءات ( Exceptions ) فى لغة الدوت نت
المستوي : مبتدئ
شرح : BADRMEDIA



==================================================

المخضرمين يعلمون أن تصيد الأخطاء اختلف فى الدوت نت وأصبح له شكل أخر عما كان عليه أيام ( VB1:6 )

وهذا الشرح سنجعله مدخل لمن يريد تعلم الاستثناءات ( Exceptions ) فى الدوت نت


كيفية الحصول علي استثناء

للحصول علي استثناء نستخدم القطعة البرمجية Try ... Catch بصفة دائمة عندما يقوم البرنامج بتنفيذ العملية وقد تولد استثناء

ولكى نقوم بذلك نكتب العملية بين العبارة Try و Ctach و بعد العبارة Catch نحصل علي الاستثناءات التى تظهر



كود :
[align=left]Try

Total_Bill= Total_Sale -Tax_tot

Catch Ex as Exception
End Try
[/align]

الجزء Catch هو المسئول عن اظهار الاستثناء والتعامل معه
ويمكن تخصيص Catch لاستثناء محدد معلوم الحدوث

كمثال : استثناء للقسمة على صفر


كود :
[align=left]Try

C = A Mod B
Str_Value = C.ToString()

' هنا خصصنا Catch لنوع القسمة على صفر

Catch Ex as DividedByZeroException

' هنا نظر رسالة الاستثناء فى رسالة للمستخدم

MsgBox("Devided By Zero.")

End Try[/align]

========================================


ومن ضمن تخصيص الاشتثناءات استثناء الغمر والغرق Overflow Exception

كود :
Dim A, B, C As Integer

Try

A= TextBox1.text
B = TextBox2.Text

C = A + B
Catch Ex as OverflowException
MsgBox("Overflow.")

End Try


====================================

مثال أخر - تفتح ملف وتريد تخصيص استثناء لعدم وجوده


كود :
[align=left]

Dim File_Name As New String = "C:\Folder\File.txt
Dim Get_File as new StreamReader

Try

Get_File = New StreamReader( File_Name )
TextBox1.Text = Get_File .ReadToEnd()
Get_File .Close

Catch Ex As FileNotFoundException

MsgBox("File Not Found")

End Try[/align]

===================================

للحصول على أى استثناء دون تخصيص نستخدم


كود :
[align=left]Catch Ex as Exception[/align]
=============================

يمكن تخصيص أكثر من استثناء لعملية واحدة



كود :
[align=left]


Try

' العملية

Catch Ex As DirectoryNotFoundException
MsgBox("Error: " & Ex .Message)
Catch Ex As FileNotFoundException
MsgBox("Error: " & Ex .Message)
Catch Ex As Exception
MsgBox("Error: " & Ex .Message)

End Try[/align]

نقطة هامة :


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

========================================


استخدام Finally :

تستخدم Finally لتنفيذ حدث سواء ظهر الاستثناء أم لم يظهر



كود :
[align=left]


Try

' العملية
Catch Ex As Exception
MsgBox("Error: " & Ex .Message)
Finally
' التعليمات أسفل Finally تنفذ فى كلتا الحالتين
MsgBox("In finally statements")

End Try[/align]

==============================================

استخدام Exit Try

فى حالات لا تريد تنفيذ تنفيذ Try ... Catch

تستخدم Exit Try ليقوم بالانتقال لأول سطر يلى End Try


كود :
[align=left]

Try

' العملية

If Condition Then Exit Try

Catch Ex as Exception

Exit Try

' عملية

[/align]

===========================================


معلومة هامة :

يمكن انشاء استثناءات خاصة بمشروعك

استثناء عبارة عن فئة Class ترث الفئة Exception



والله الموفق لما فيه الخير
}}}
تم الشكر بواسطة:



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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم