تقييم الموضوع :
  • 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



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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  معلومة ::: ListBox Blue Sky 14 2,463 14-11-16, 11:32 PM
آخر رد: فارس جراح
  معلومة مهمه فى المصفوفات ali.alfoly 2 800 30-08-13, 02:25 AM
آخر رد: ali.alfoly
  من المنتدى القديم - معلومة ::: ProgressBar ( للاخ BADRMEDIA ) المبرمج علي نوري 2 1,272 23-08-13, 11:17 PM
آخر رد: nin9e
  معلومة :: تعلم كيف تحفظ صورة في My.Settings بدون الإحتياج إلى مسارها! أسامة أحمد 3 1,027 16-12-12, 06:25 PM
آخر رد: 3amo
  من المنتدى القديم - معلومة ::: CheckBox ( للاخ BADRMEDIA ) المبرمج علي نوري 1 577 30-11-12, 05:54 PM
آخر رد: مبرمج أوتار
  معلومة :: الحل لمشكلة الخطأ في الكود For Each i As Button In Me.Controls Aly El-Haddad 2 684 10-11-12, 09:15 PM
آخر رد: Mr. DotNet
  معلومة : Partial Class RaggiTech 1 547 06-10-12, 11:03 PM
آخر رد: RaggiTech
  معلومة : TryCast مهمة RaggiTech 0 463 06-10-12, 11:02 PM
آخر رد: RaggiTech
  معلومة : XML Comments مهمة RaggiTech 1 425 06-10-12, 11:01 PM
آخر رد: RaggiTech
  معلومة : خطوط BarCode RaggiTech 0 725 06-10-12, 10:59 PM
آخر رد: RaggiTech

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


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